fix: work around flexsearch returning fewer than expected result pages (#847)
Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
This commit is contained in:
@@ -318,7 +318,10 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
}
|
}
|
||||||
resultsElement.classList.remove('hx:hidden');
|
resultsElement.classList.remove('hx:hidden');
|
||||||
|
|
||||||
const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || [];
|
// Configurable search limits with sensible defaults
|
||||||
|
const maxPageResults = parseInt('{{- site.Params.search.flexsearch.maxPageResults | default 20 -}}', 10);
|
||||||
|
const maxSectionResults = parseInt('{{- site.Params.search.flexsearch.maxSectionResults | default 10 -}}', 10);
|
||||||
|
const pageResults = window.pageIndex.search(query, maxPageResults, { enrich: true, suggest: true })[0]?.result || [];
|
||||||
|
|
||||||
const results = [];
|
const results = [];
|
||||||
const pageTitleMatches = {};
|
const pageTitleMatches = {};
|
||||||
@@ -327,12 +330,13 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
const result = pageResults[i];
|
const result = pageResults[i];
|
||||||
pageTitleMatches[i] = 0;
|
pageTitleMatches[i] = 0;
|
||||||
|
|
||||||
// Show the top 5 results for each page
|
const sectionResults = window.sectionIndex.search(query,
|
||||||
const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: { 'pageId': `page_${result.id}` } })[0]?.result || [];
|
{ enrich: true, suggest: true, tag: { 'pageId': `page_${result.id}` } })[0]?.result || [];
|
||||||
let isFirstItemOfPage = true
|
let isFirstItemOfPage = true
|
||||||
const occurred = {}
|
const occurred = {}
|
||||||
|
|
||||||
for (let j = 0; j < sectionResults.length; j++) {
|
const nResults = Math.min(sectionResults.length, maxSectionResults);
|
||||||
|
for (let j = 0; j < nResults; j++) {
|
||||||
const { doc } = sectionResults[j]
|
const { doc } = sectionResults[j]
|
||||||
const isMatchingTitle = doc.display !== undefined
|
const isMatchingTitle = doc.display !== undefined
|
||||||
if (isMatchingTitle) {
|
if (isMatchingTitle) {
|
||||||
|
|||||||
Reference in New Issue
Block a user