From e0728322162cfdd65bfa5ea4c32550b1857b3d0a Mon Sep 17 00:00:00 2001 From: newtextdoc1111 Date: Wed, 16 Jul 2025 08:01:11 +0900 Subject: [PATCH] fix: Improve sorting logic in searchCompletionCandidates for better tag matching --- web/js/autocomplete.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/js/autocomplete.js b/web/js/autocomplete.js index 62d4aaa..ce0b484 100644 --- a/web/js/autocomplete.js +++ b/web/js/autocomplete.js @@ -116,13 +116,17 @@ function searchCompletionCandidates(textareaElement) { } let result = []; searchResults.sort((a, b) => { - if (matchWord(autoCompleteData[source].sortedTags[b].tag, queryVariations).matched) { + const aTag = autoCompleteData[source].sortedTags[a]; + const bTag = autoCompleteData[source].sortedTags[b]; + if (matchWord(bTag.tag, queryVariations).isExactMatch || + (bTag.alias && bTag.alias.some(alias => matchWord(alias, queryVariations).isExactMatch))) { return 999999999999; } - if (matchWord(autoCompleteData[source].sortedTags[a].tag, queryVariations).matched) { + if (matchWord(aTag.tag, queryVariations).isExactMatch || + (aTag.alias && aTag.alias.some(alias => matchWord(alias, queryVariations).isExactMatch))) { return -999999999999; } - return autoCompleteData[source].sortedTags[b].count - autoCompleteData[source].sortedTags[a].count; + return bTag.count - aTag.count; }).forEach(seachResult => { result.push(autoCompleteData[source].sortedTags[seachResult]); });