improved use of levenstein for relevancy sorting
This commit is contained in:
parent
d8119a1475
commit
4e5c23cefd
|
@ -399,6 +399,9 @@ function sortByRelevancy<T extends Record<"p" | "g", string>>(
|
|||
: 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<T extends Record<"p" | "g", string>>(
|
|||
}
|
||||
|
||||
const toSort = [...arr];
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue