当前位置: 首页 > 面试题库 >

如何在elasticsearch中建议(自动完成)下一个单词?

万坚壁
2023-03-14
问题内容

可以说我索引了以下字符串:

"My awesome pizza"
"My awesome beer"
"Heineken is awesome beer"
"I love pizza pepperoni"
"Where is my beer"

对于输入,"My"我想建议:

  1. 很棒
  2. 我的 啤酒

对于输入,"awesome"我想建议:

  1. 很棒的 披萨
  2. 很棒的 啤酒

等等

因此,我想在用户输入后提供下一个单词…此外,还应支持一些模糊性( aEwsome )。

我应该使用哪些建议者/分析者?我尝试了 术语完成, 但这不是我想要的(例如,完成仅在搜索词组的开头时有效-
如果我传递位于索引字符串中间的词,则不会建议)


问题答案:

Elasticsearch通过其完成提示功能提供了一种便捷的方法来自动完成并运行。

检查此链接,这是您在寻找什么

https://qbox.io/blog/multi-field-partial-word-autocomplete-in-elasticsearch-
using-ngrams

完成建议程序还可以帮助您实现此功能



 类似资料:
  • 问题内容: 我正在寻找一种在Lucene中执行查询自动完成/建议的方法。我已经在Google上搜索了一些,并玩了一些,但是我看到的所有示例似乎都在Solr中设置了过滤器。我们不使用Solr,也不打算在不久的将来使用Solr,而且Solr显然无论如何都只是围绕Lucene,所以我想一定有办法做到这一点! 我已经研究过使用EdgeNGramFilter,但我意识到我必须在索引字段上运行过滤器并取出令牌

  • 我想从多个领域得到建议。我找不到这样的例子,所以也许这不是最好的主意,但我对你的意见很感兴趣。 要求是: GET查询适用于文本“fyodor”和“dostoevsky”,此示例仅适用于“fyodor” 启用筛选建议 我有什么想法可以实现这些?

  • 在UI我需要显示自动完成建议,它给我包含搜索术语的术语。例如,如果我搜索,我可能会得到、、、、等建议。搜索框用于搜索/过滤正在使用/显示为城市聚合术语的文件。此字段类型为数组,因此一个文档可以有多个城市。自动建议应仅包含可用/结果文档中的城市。 我知道使用过滤功能的术语聚合与适当的正则表达式。https://www.elastic.co/guide/en/elasticsearch/referen

  • 问题内容: 我找不到有关如何使用PHP(elasticsearch-php)中的完成建议器查询Elasticsearch的有效示例。 通过CURL查询,例如 可以,所以唯一的问题是PHP中的查询部分。 如何使用API​​通过完成建议器查询Elasticsearch? 问题答案: PHP ES客户端具有一种称为的方法,您可以将其用于该目的: