From eecfc78be24461bde1e613cb276c515b757d9f61 Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Sat, 31 Dec 2022 21:26:53 +0100 Subject: [PATCH] Tweaking fuzzy search --- src/search/omnisearch.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/search/omnisearch.ts b/src/search/omnisearch.ts index 0f495d5..5a7ed53 100644 --- a/src/search/omnisearch.ts +++ b/src/search/omnisearch.ts @@ -104,8 +104,7 @@ export class Omnisearch { documents.filter(d => this.indexedDocuments.has(d.path)).map(d => d.path) ) - // Split the documents in smaller chunks to regularly save the cache. - // If the user shuts off Obsidian mid-indexing, we at least saved some + // Split the documents in smaller chunks to add them to minisearch const chunkedDocs = chunkArray(documents, 500) for (const docs of chunkedDocs) { // Update the list of indexed docs @@ -146,7 +145,10 @@ export class Omnisearch { let results = this.minisearch.search(query.segmentsToStr(), { prefix: term => term.length >= options.prefixLength, - fuzzy: 0.2, + // length <= 3: no fuzziness + // length <= 5: fuzziness of 10% + // length > 5: fuzziness of 20% + fuzzy: term => (term.length <= 3 ? 0 : term.length <= 5 ? 0.1 : 0.2), combineWith: 'AND', boost: { basename: settings.weightBasename,