Elasticsearch - 复合聚合最大值

Elasticsearch - Composite aggregation max value

我正在尝试获取日期的最大值和最小值。

从文档中我没有看到复合中的最大选项: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html#_value_sources

我想要这样的东西:

{
   "size":0,
   "aggs":{
      "intervals":{
         "composite":{
            "size":10000,
            "sources":[
               {
                  "id":{
                     "terms":{
                        "field":"id"
                     }
                  }
               },
               {
                 "minTime": {
                   "min": {
                     "script": "doc['createdAt'].value"
                   }
                 }
               },
               {
                 "maxTime": {
                   "max": {
                     "script": "doc['createdAt'].value"
                   }
                 }
               }
            ]
         }
      }
   }
}

是否可以添加到此查询中,或者我需要为此单独查询吗?

composite 聚合允许您对存储桶进行分页。 minmax 是应用于每个桶的度量聚合(即度量聚合不能是复合聚合的 sources )并且必须作为 sub-aggregations 添加到复合聚合中,那又怎样您需要做的是:

{
  "size": 0,
  "aggs": {
    "intervals": {
      "composite": {
        "size": 10000,
        "sources": [
          {
            "id": {
              "terms": {
                "field": "id"
              }
            }
          }
        ]
      },
      "aggs": {
        "minTime": {
          "min": {
            "script": "doc['createdAt'].value"
          }
        },
        "maxTime": {
          "max": {
            "script": "doc['createdAt'].value"
          }
        }
      }
    }
  }
}