mirror of
https://github.com/alexankitty/Myrient-Search-Engine.git
synced 2026-01-15 16:33:15 -03:00
change best match to be less word order dependent. dedupe repeat terms
This commit is contained in:
@@ -63,7 +63,7 @@ function buildOrAndClauses(field, op, queries) {
|
||||
let orClauses = [];
|
||||
|
||||
for (let x in queries) {
|
||||
let name = queries[x].split(" ");
|
||||
let name = [...new Set(queries[x].split(" "))]; //dedupe;
|
||||
let andClauses = [];
|
||||
for (let y in name) {
|
||||
andClauses.push(where(field, op, name[y], WhereFlags.CONTAINS));
|
||||
@@ -86,23 +86,23 @@ function getBestMatch(filename, data) {
|
||||
let bestMatchCount = 0;
|
||||
let lengthDifference = 0;
|
||||
for (let x in data) {
|
||||
let dataWords = data[x].name.split(" ");
|
||||
let matchingWords = 0;
|
||||
for (let y in words) {
|
||||
if (y >= dataWords.length) break;
|
||||
if (words[y] == dataWords[y]) matchingWords++;
|
||||
if (data[x].name.toLowerCase().includes(words[y].toLowerCase()))
|
||||
matchingWords++;
|
||||
}
|
||||
let diff = matchingWords - dataWords.length;
|
||||
if (matchingWords > bestMatchCount && diff < lengthDifference) {
|
||||
bestIndex = x;
|
||||
bestMatchCount = matchingWords;
|
||||
lengthDifference = diff
|
||||
lengthDifference = diff;
|
||||
if (lengthDifference < 0) lengthDifference = 0;
|
||||
}
|
||||
}
|
||||
if(bestIndex != null){
|
||||
return data[bestIndex]
|
||||
if (bestIndex != null) {
|
||||
return data[bestIndex];
|
||||
}
|
||||
return
|
||||
return;
|
||||
}
|
||||
|
||||
let games = await getMetadata([
|
||||
|
||||
Reference in New Issue
Block a user