有个人长的像洋葱,走着走着就哭了…….

postFilter跟聚合的作用关系

Elasticsearch | 作者 Charele | 发布于2023年07月19日 | 阅读数:1084

以前也发过这个问题,但还是没有整明白。
 
我个人的感觉,这好像是有前后因果关联的,
比如一个search(query部分+聚合部分),只有query查出的结果(就是结果doc号中的term)才会被聚合。

如果我加了postFilter部分:
111.PNG

从这个理解,似乎是query -> postFilter -> 聚合,
postFilter后的结果才能被聚合。
实际上,聚合跟本不受postFilter的影响。
已邀请:

Ombres

赞同来自: Charele

没读完代码,再往后追一追,看看collector的组合过程及最终构建的collector
结合 两个CreateContext分析
如果有聚合,最终构成的类似这样
MultiCollector ---- PostFilter (后置过滤)   ----  TopN   这个是列表
                        ---- Agg      聚合等
                   
 

Charele - Cisco4321

赞同来自:

https://elasticsearch.cn/question/12892
我找了以前的贴子。大神解释说,“查询首先通过你的条件生成相应的disi,collector会对这些id进行其他操作”
好没有理解啊,
 既然collector(包括聚合),看到的只是query产生的doc,
那那个global聚合,又是如何无视query,查到所有数据的呢?

要回复问题请先登录注册