如何在汇总过程中过滤掉某些值?

时间:2018-08-09 00:52:21

标签: elasticsearch

我想进行汇总以在索引中找到最小纬度。

post myIndex/_search?pretty=true
{
  "aggs": {
    "min_lat": {
      "min": {
        "field": "latitude"
      }
    }
  }
}

此查询返回所有记录以及最小的纬度。

我希望汇总信息忽略纬度为0或更小(例如南半球)的记录。但是记录本身仍然应该返回。

我该怎么做?有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以在最小聚合之前使用过滤器聚合。

{
  "aggs": {
    "positive_lat": {
      "filter": { "range": { "latitude" : { "gt": 0 } } },
      "aggs" : {
        "min_lat": {
          "min": {
             "field": "latitude"
          }
        }
      }
    }
  }
}

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/query-dsl-range-query.html https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-aggregations-bucket-filter-aggregation.html