我想知道如何过滤更多此查询。 基本上,搜索功能适用于1行单词和连续行单词(包括空格),但是如果当前输入更可能是关键字
即。 “堆栈溢出”
我的查询功能无法查询标题
即。 “搜索堆栈并溢出”
您能建议吗?谢谢
Searchdata(ev: any) {
let val = ev.target.value;
this.QuizDataa = this.mqprovider.getSearchData(val).filter((item) => {
return (item.Title.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
getSearchData(data) {
let qwe = [];
this.afd.database.ref().child("Data/")
.orderByChild("Title")
.startAt(data)
.endAt(data + '\uf8ff')
.on("child_added", function(snapshot) {
qwe.push(snapshot.val());
});
return qwe;
}
答案 0 :(得分:1)
我写了一个我能想到的最简单的搜索功能。它只是将搜索查询分为单个单词,然后在文本中搜索它们。您可以通过添加分数等来改善它。但是在这里,我们要涉及太多细节。 Google建议使用algolia(https://www.algolia.com/)进行全文搜索,如果在应用程序中包含徽标,则可以免费使用社区计划。
var key = "some words";
var text = "This is a text that has some words, that sometimes are in need of just being found by the algorithm";
var keySplit = key.split(" ");
var found = false;
keySplit.forEach(function(key){
if(!found){
found = text.indexOf(key) > -1;
}
})
console.log(found)