cockatoo.js
Version:
Fuzzy search library based based on Damerau Levenshtein distance algorithm for Node.js
39 lines (38 loc) • 1.37 kB
TypeScript
import { CockatooOptions } from "./cockatooOptions";
import { DamerauLevenshtein } from "./damerauLevenshtein";
import { Match } from "./match";
import { TokenMatch } from "./tokenMatch";
export declare class Cockatoo<T> {
damLev: DamerauLevenshtein;
elementsList: T[];
options: CockatooOptions;
searchableValuesList: string[][];
searchableTokensList: string[][];
originalValuesList: string[][];
originalTokensList: string[][];
cache: {
[key: string]: {
results: Match<T>[];
date: Date;
};
};
maxCacheElements: number;
/**
* Create a Cockatoo.js instance
*/
constructor(elementsList: T[], options: CockatooOptions, maxCacheElements?: number);
search(searchText: string, filter?: (element: T) => boolean): Promise<Match<T>[]>;
getScore(search: string, patterns: string[], options: CockatooOptions): {
score: number;
patternMatch: string;
};
getTokenScore(tokens: string[], patternTokens: string[], originalTokens: string[], originalPatternTokens: string[]): {
tokenScore: number;
tokenMatches: TokenMatch[];
};
getMinDistance(search: string, pattern: string, options: CockatooOptions): number;
private getMatch;
private generateValuesList;
private generateTokensList;
private getTokensFromText;
}