From 4e5c23cefd7b7d0d68925bc8848268d9e5b00683 Mon Sep 17 00:00:00 2001 From: adueck Date: Mon, 14 Aug 2023 13:48:50 +0400 Subject: [PATCH] improved use of levenstein for relevancy sorting --- website/src/lib/dictionary.ts | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/website/src/lib/dictionary.ts b/website/src/lib/dictionary.ts index b04c2ea..8516526 100644 --- a/website/src/lib/dictionary.ts +++ b/website/src/lib/dictionary.ts @@ -399,6 +399,9 @@ function sortByRelevancy>( : 0; } function levenOverVars(g: string, s: string): number { + if (!g.includes(",")) { + return levenshtein(g, s, insert, remove, update).distance; + } return Math.min( ...g .split(",") @@ -407,11 +410,31 @@ function sortByRelevancy>( } const toSort = [...arr]; - toSort.sort((a, b) => { - const aDist = levenOverVars(a[index], searchI); - const bDist = levenOverVars(b[index], searchI); - return aDist - bDist; - }); + if (index === "g") { + toSort.sort((a, b) => { + const aDist = levenOverVars(a[index], searchI); + const bDist = levenOverVars(b[index], searchI); + return aDist - bDist; + }); + } else { + toSort.sort((a, b) => { + const aDist = levenshtein( + a[index], + searchI, + insert, + remove, + update + ).distance; + const bDist = levenshtein( + b[index], + searchI, + insert, + remove, + update + ).distance; + return aDist - bDist; + }); + } return toSort; }