我在elasticsearch中使用热门命中聚合。但是,当我向查询添加过滤器时,它返回0次点击(预期行为),但聚合与过滤器不匹配并返回非零文档。我认为聚合的工作范围与查询的范围相同?似乎没有那样工作。有什么想法吗?
答案 0 :(得分:1)
您可能正在使用顶级filter
而不是过滤后的查询。顶级过滤器被解释为post filter并在执行查询后执行,影响命中但不影响构面。
如果您只是将后置过滤器转换为filtered query,则只会根据过滤器的结果正确计算出聚合。
{
"query":{
"filtered":{
"filter": // your filter as before
}
},
"aggs": // now they will be correctly calculated
}