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)
|
* #10786: improve the error message when a file to be copied (e.g., an asset)
|
||||||
is removed during Sphinx execution.
|
is removed during Sphinx execution.
|
||||||
Patch by Bénédikt Tran.
|
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
|
Testing
|
||||||
-------
|
-------
|
||||||
|
@ -508,7 +508,7 @@ const Search = {
|
|||||||
if (!titleTerms.hasOwnProperty(word)) {
|
if (!titleTerms.hasOwnProperty(word)) {
|
||||||
Object.keys(titleTerms).forEach((term) => {
|
Object.keys(titleTerms).forEach((term) => {
|
||||||
if (term.match(escapedWord))
|
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);
|
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