使用查询过滤器确定聚合范围

时间:2015-06-24 07:09:59

标签: elasticsearch elastica

我在elasticsearch中使用热门命中聚合。但是,当我向查询添加过滤器时,它返回0次点击(预期行为),但聚合与过滤器不匹配并返回非零文档。我认为聚合的工作范围与查询的范围相同?似乎没有那样工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能正在使用顶级filter而不是过滤后的查询。顶级过滤器被解释为post filter并在执行查询后执行,影响命中但不影响构面。

如果您只是将后置过滤器转换为filtered query,则只会根据过滤器的结果正确计算出聚合。

{
   "query":{
      "filtered":{
         "filter": // your filter as before
      }
   },
   "aggs": // now they will be correctly calculated
}