mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
[HTML search] include partially-matched document titles in search results (#12041)
Co-authored-by: William Lachance <wlach@protonmail.com>
This commit is contained in:
parent
04bd0df100
commit
bfce4f54b0
@ -139,6 +139,9 @@ Bugs fixed
|
||||
* #10786: improve the error message when a file to be copied (e.g., an asset)
|
||||
is removed during Sphinx execution.
|
||||
Patch by Bénédikt Tran.
|
||||
* #12040: HTML Search: Ensure that document titles that are partially-matched by
|
||||
the user search query are included in search results.
|
||||
Patch by James Addison.
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
@ -508,7 +508,7 @@ const Search = {
|
||||
if (!titleTerms.hasOwnProperty(word)) {
|
||||
Object.keys(titleTerms).forEach((term) => {
|
||||
if (term.match(escapedWord))
|
||||
arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
|
||||
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -54,6 +54,31 @@ describe('Basic html theme search', function() {
|
||||
expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
|
||||
});
|
||||
|
||||
it('should partially-match "sphinx" when in title index', function() {
|
||||
index = {
|
||||
docnames:["index"],
|
||||
filenames:["index.rst"],
|
||||
terms:{'useful': 0, 'utilities': 0},
|
||||
titles:["sphinx_utils module"],
|
||||
titleterms:{'sphinx_utils': 0}
|
||||
}
|
||||
Search.setIndex(index);
|
||||
searchterms = ['sphinx'];
|
||||
excluded = [];
|
||||
terms = index.terms;
|
||||
titleterms = index.titleterms;
|
||||
|
||||
hits = [[
|
||||
"index",
|
||||
"sphinx_utils module",
|
||||
"",
|
||||
null,
|
||||
7,
|
||||
"index.rst"
|
||||
]];
|
||||
expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user