alerte-secours/src/finders/alertTitle.js

61 lines
1.2 KiB
JavaScript

import Fuse from "fuse.js";
// import lunr from 'lunr'
// import stemmerSupport from 'lunr-languages/lunr.stemmer.support'
// import stemmerLangFr from 'lunr-languages/lunr.fr'
import terms from "~/misc/alertsList";
const searchKeys = [
{
name: "title",
weight: 1,
},
{
name: "desc",
weight: 2,
},
{
name: "keywords",
weight: 2,
},
];
const fuse = new Fuse(terms, {
keys: searchKeys,
threshold: 0.4,
// shouldSort: true,
});
function fuseSearch(term) {
return fuse.search(term).map(({ item }) => item);
}
// if (lunr.fr === undefined){
// require("lunr-languages/lunr.stemmer.support")(lunr)
// require("lunr-languages/lunr.fr")(lunr)
// }
// const lunrIndex = lunr(function(){
// this.b(0)
// this.k1(2)
// this.use(lunr.fr)
// this.ref('id')
// searchKeys.forEach(k => this.field(k))
// terms.forEach((term) => {
// this.add(term)
// })
// })
// function lunrSearch(term){
// return lunrIndex.search(term, {}).map(({ref})=>terms[ref])
// }
export default function findAlertTitle(term) {
let results;
if (!term || term.trim() == "") {
results = terms;
} else {
// results = lunrSearch(term)
results = fuseSearch(term);
}
return results;
}