ElasticSearch按聚合结果过滤

时间:2015-07-17 08:24:29

标签: elasticsearch filter aggregation

我只是想仔细检查一下我是否错过了什么。在ElasticSearch 1.4中,无法对聚合结果运行任何类型的服务器端过滤,对吗?我有一个平均百分比聚合(0 ..),我想删除结果中高于0.9的所有内容。

使用ES 2.0 reducer,这似乎是可能的,或者现在在客户端,但这需要非常高的计数(最后所有这些)来解决这个问题。

我是否有机会错过ES 1.4来实现这一目标?

这是一个例子:

{
  "aggs": {
    "group": {
      "terms": {
        "field": "contextRaw.site_city",
        "order": {
          "result": "desc"
        }
      },
      "aggs": {
        "result": {
          "avg": {
            "field": "somePercentage"
          }
        }
      }
    }
  }
}

结果是现在小水桶也只占1.0的百分比,而我对那些不感兴趣,但是在0.9以下的那些。

   "aggregations": {
      "group": {
         "doc_count_error_upper_bound": -1,
         "sum_other_doc_count": 5924518,
         "buckets": [
            {
               "key": "value A",
               "doc_count": 3921,
               "result": {
                  "value": 1
               }
            },
            {
               "key": "value B",
               "doc_count": 312,
               "result": {
                  "value": 1
               }
            },

1 个答案:

答案 0 :(得分:1)

我不确定最好的地方,它在official forums得到了解答。

  1.4中的

没有任何东西可以过滤掉返回的桶   客户端的聚合。使用新管道进入2.0   聚合有一个bucket_selector聚合,它将允许   你可以通过

进行这种过滤