gpt4 book ai didi

ElasticSearch:post_filter 还是 filter?

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

假设我在这里解释了类似的情况: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-post-filter.html

在我偶然发现这篇文章之前,我一直在使用 filter 而不是 post_filter 来处理这种情况,它产生的输出就像 post_filter 一样。

我的问题是:它们是一回事吗?如果不是,推荐使用哪种方法更有效?为什么?

最佳答案

搜索命中而言,它们是同一回事,即您获得的命中将根据您在 filtered 中的任一过滤器进行正确过滤。 post_filter 中的查询或过滤器.

但是,就聚合而言,最终的结果不会相同。两者之间的区别归结为将计算聚合的文档集。

如果您的过滤器位于 filtered 中查询,那么您的聚合将在您的 filtered 中的查询和过滤器选择的文档集上进行计算查询,即您将在响应中获得的同一组文档。

如果您的过滤器位于 post_filter 中,那么您的聚合将根据您的各种查询选择的文档集进行计算。一旦在该文档集上计算了聚合,后者将由 post_filter 中的过滤器进一步过滤。在返回匹配文档之前。

总结一下,

  • 一个filtered查询影响搜索结果和聚合
  • 同时 post_filter 只影响搜索结果,不影响聚合

关于ElasticSearch:post_filter 还是 filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32085557/

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