n8n-nodes-fuse-postgre-master
Version:
Node do n8n para buscas fuzzy no PostgreSQL usando Fuse.js.
30 lines (28 loc) • 856 B
text/typescript
import Fuse from 'fuse.js';
export interface FuseSearchOptions {
keys: string[];
threshold?: number;
distance?: number;
minMatchCharLength?: number;
isCaseSensitive?: boolean;
limit?: number;
}
export function fuseSearch<T = any>(
data: T[],
searchTerm: string,
options: FuseSearchOptions
): { results: T[]; totalResults: number } {
const fuse = new Fuse(data, {
keys: options.keys,
threshold: options.threshold ?? 0.6,
distance: options.distance ?? 100,
minMatchCharLength: options.minMatchCharLength ?? 1,
isCaseSensitive: options.isCaseSensitive ?? false,
});
const searchResults = fuse.search(searchTerm);
const limitedResults = options.limit ? searchResults.slice(0, options.limit) : searchResults;
return {
results: limitedResults.map(r => r.item),
totalResults: searchResults.length,
};
}