elasticsearch - Elasticsearch单词自动完成,带有文档计数

标签 elasticsearch autocomplete

我希望能够将部分单词自动填充为在文档中找到的完整单词,并返回单词列表以及找到这些单词的文档数量。

如果我也可以对现有查询结果执行此操作,那将是很好的。因此,如果用户键入“red tr”,我将得到所有与红色匹配的文档的结果,然后是带有计数的卡车或火车之类的单词。

最佳答案

你是对的。建议者不会同时完成并给您提供文档频率。

一种解决方案:

性能不会像zippy那样高,但是如果您执行以下操作(不使用Askers),可能仍然可以接受:

  • 运行使用用户输入的前缀Prefix Filter过滤的size: 0 match_all查询。
  • 在同一查询中,在索引中的Terms Aggregation字段上请求shingled
  • 使用聚合结果作为完成建议。

  • 注意:
  • 有关抑制噪声的信息,请参阅有关filtering term agg values的部分。 (您将需要此功能,因为默认的agg结果排序是通过减少文档数。)
  • 另外,请注意document counts are approximate wrt shard_size已请求。
  • 关于elasticsearch - Elasticsearch单词自动完成,带有文档计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908747/

    相关文章:

    elasticsearch - 为什么当第二个节点再次启动时,没有分片成为第二个节点上的主要节点?

    elasticsearch - 如何在 elasticsearch 中对 _id 进行通配符或正则表达式匹配?

    elasticsearch - ElasticSearch has_child查询什么都找不到

    javascript - 使用 javascript 自动选择下拉列表并运行 jquery

    php - Bash 补全 symfony

    java - Java 的 Vim omnicompletion

    reactjs - 如何更改 Material-UI 自动完成中的复选框颜色?

    javascript - Fire 方法填充详细信息 View 控件,来自 jquery 自动完成输入

    elasticsearch - 在Elasticsearch中查找触发 `ignore_malformed`的文档

    elasticsearch - 如何在Kibana中为条形图应用阈值?