有谁知道在Elasticsearch中逐字母索引数据的最佳方法是什么?我有Rails应用程式巫婆,我在我的应用程式中使用elasticsearch作为搜寻引擎。在我的Rails应用程序中,我有很多包含文章的内容,在我的实现中,我可以搜索文章并完美返回结果,我有多个过滤器,例如ngram-edge gram-whitespace和...。如果用户键入完全完整的单词,并且一切正常,并且在我的设计中我有一些类似ngram的过滤器,那么在这种状态下,如果他/她键入一个字母,他/她可以返回一些结果,则我想为用户提供帮助但我想用松紧带做。
如果用户输入至少三个或四个字母的松紧带可以返回结果,则在最佳状态下,我会帮助我。
我正在使用ngram过滤器
边缘克过滤器
正则表达式
还有...
但它们都没有用。
最佳答案
您需要在elasticsearch中使用suggest
查询,如下所示:
{
"suggest": {
"auto-complete-suggest": {
"prefix": "Your prefix text",
"completion": {
"size" : 5,
"field": "text_completion"
}
}
}
}
您的映射将如下所示:{
"mappings": {
"properties": {
"text_completion": {
"type": "completion",
"analyzer": "Your analyzer"
}
}
}
}
关于elasticsearch - 在Rails应用程序中使用Elasticsearch逐个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64317922/