in _/js/search-ui.js [294:340]
function search (index, documents, queryString) {
// execute an exact match search
let query;
let result = filter(
index.query(function (lunrQuery) {
const parser = new globalThis.lunr.QueryParser(queryString, lunrQuery);
parser.parse();
query = lunrQuery;
}),
documents
);
if (result.length > 0) {
return result
}
// no result, use a begins with search
result = filter(
index.query(function (lunrQuery) {
lunrQuery.clauses = query.clauses.map((clause) => {
if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
clause.term = clause.term + '*';
clause.wildcard = globalThis.lunr.Query.wildcard.TRAILING;
clause.usePipeline = false;
}
return clause
});
}),
documents
);
if (result.length > 0) {
return result
}
// no result, use a contains search
result = filter(
index.query(function (lunrQuery) {
lunrQuery.clauses = query.clauses.map((clause) => {
if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
clause.term = '*' + clause.term + '*';
clause.wildcard = globalThis.lunr.Query.wildcard.LEADING | globalThis.lunr.Query.wildcard.TRAILING;
clause.usePipeline = false;
}
return clause
});
}),
documents
);
return result
}