复合聚合最大值

tnkciper  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(301)

我想得到一个日期的最大值和最小值。
从文档中,我看不到composite中的max选项: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"
                   }
                 }
               }
            ]
         }
      }
   }
}

是否可以添加到这个查询中,或者我需要一个单独的查询?

5anewei6

5anewei61#

这个 composite 聚合允许您在存储桶上分页。 min 以及 max 是应用于每个bucket的度量聚合(即,不能使用度量聚合) sources 必须作为子聚合添加到复合聚合中,因此您需要执行以下操作:

{
  "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"
          }
        }
      }
    }
  }
}

相关问题