我是Elasticsearch新手。
我正在尝试使用elasticsearch搜索一些书名,例如书名。
我将从客户端每0.5秒向服务器发送一次用户输入字符串以提出建议。
所以它可能是部分单词,甚至可能是错别字。
解决该问题的最佳查询/方式是什么。
任何朝着正确方向的观点都会受到赞赏。
谢谢
// fuzzy query example but it is not answering for multiple words
return await client.search({
index: indexName,
body: {
query: {
fuzzy: {
title: userInputSentence
}
},
},
});
答案 0 :(得分:0)
您可以通过添加ngram / prefix标记器来实现自动完成-这将使输入的部分文本与完整的文本相匹配。
很少参考: How to suggest (autocomplete) next word in elastic search?
https://hackernoon.com/elasticsearch-building-autocomplete-functionality-494fcf81a7cf
更新:----------
另一种选择是使用Elasticsearch completion suggester和Index-Time Search-as-You-Type