gpt4 book ai didi

elasticsearch - 键入时搜索和上下文建议器之间有什么区别?

转载 作者:行者123 更新时间:2023-11-29 02:51:13 25 4
gpt4 key购买 nike

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

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

对于建议者,我是手动为建议索引提供记录,而在“随手搜索”中,我使用的是现有索引数据,这对吗?我为什么要选择一个而不是另一个?

最佳答案

目前Elasticsearch中有4种suggesters:

  • Term suggester .然后根据编辑距离提供“相似”术语。它根据索引中的数据提供建议,有很多旋钮和转向来调整它。
  • Phrase suggester .这与术语建议者所做的非常相似,但考虑了整个短语。
  • Completion suggester或按类型搜索功能。如果前两个正在执行类似您是说功能还是拼写检查的操作,则基于索引中的实际术语。这个应该在用户输入时“显示”你一些 5 或 10 个相关文档,对于这个你需要手动索引建议类型的字段,稍后 ES 将在其中进行快速查找。
  • Context suggester .这是 completion suggester 的延续,其想法是用户来自(地理)的某些上下文,或者如果引擎想要提升某个公司而不是另一个公司,只是因为他们为此付费,或者类似的事情。在这种情况下,您需要手动索引额外的数据。

更新。从 Elasticsearch 7.2 开始引入了 search-as-you-type field type ,它本身并不是建议器,但提供了模拟“按您输入的方式搜索”功能的功能。

It creates a series of subfields that are analyzed to index terms that can be efficiently matched by a query that partially matches the entire indexed text value. Both prefix completion (i.e matching terms starting at the beginning of the input) and infix completion (i.e. matching terms at any position within the input) are supported.

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

因此,您的选择应该来自您的用例,并且永远不要忘记您在这两种情况下的开销。

关于elasticsearch - 键入时搜索和上下文建议器之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com