搜索为你的类型和上下文建议有什么区别?

max*_*ner 4 elasticsearch

我想实现一个搜索类型(即搜索输入中的自动提示),似乎至少有两个文档页面有不同的方法来执行此操作:

https://www.elastic.co/guide/en/elasticsearch/guide/2.x/_index_time_search_as_you_type.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html

我是正确的,有了建议,我手动提供建议索引的记录,而在搜索你的类型,我使用现有的索引数据?为什么我会选择一个而不是另一个?

Mys*_*ion 8

目前Elasticsearch中有4种类型的建议:

  • 术语建议者.然后根据编辑距离提供"类似"术语.它根据索引中的数据提供建议,有很多旋钮可以调整它.
  • 短语建议者.它与建议者所做的非常类似,但考虑到整个短语.
  • 完成建议或搜索即用型功能.如果前两个做了类似的事情你的意思是功能或拼写检查,基于索引中的实际条款.当用户输入时,这个应该"显示"你的5或10个相关文档,对于这个,你需要手动索引建议类型的字段,后面的ES将进行快速查找.
  • 上下文建议者.这是完成建议器的延续,其中包含用户来自某个上下文(geo)的概念,或者引擎是否希望将某个公司推向另一个公司,只是因为他们为此付费,或类似的事情.在这种情况下,您需要手动索引其他数据.

关于你的问题:在两种情况下,你需要索引某些东西(Elasticsearch中没有魔法),但前两个建议者更多的是你的意思是更正,拼写检查更正,而后两个需要额外的索引.前两个,只是普通的数据结构,您可以将它们用于普通搜索或这些建议,而最后两个构建为超快,它们使用能够快速查找的数据结构,但构建成本高并且存储在-memory.

所以,你的选择应该来自你的用例,永远不要忘记你在两种情况下的开销.

  • Elasticsearch 7.2增加了第五名。[按类型搜索数据类型](https://www.elastic.co/guide/en/elasticsearch/reference/7.2/search-as-you-type.html)。 (3认同)