From e3a8744235adeefdecc1160c0fadfa2322c4bf7d Mon Sep 17 00:00:00 2001 From: calebchiam Date: Sat, 5 Mar 2022 13:00:30 -0500 Subject: [PATCH] fixing duplicate search results bug --- sphinx/themes/basic/static/searchtools.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sphinx/themes/basic/static/searchtools.js b/sphinx/themes/basic/static/searchtools.js index cba0817cecb..514fb77aaeb 100644 --- a/sphinx/themes/basic/static/searchtools.js +++ b/sphinx/themes/basic/static/searchtools.js @@ -291,6 +291,20 @@ const Search = { return leftScore > rightScore ? 1 : -1; }); + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + // for debugging //Search.lastresults = results.slice(); // a copy // console.info("search results:", Search.lastresults);