如何在ElasticSearch中获取聚合结果?

yrwegjxp  于 2022-09-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(156)

我需要在ElasticSearch中获取不同的值,这些值与ElasticSearch中的某些条件匹配,其中数据采用这种格式。SQL版本将是。

select distinct kind_id from xxx where timestamp < date_add(now(), interval -1 day)

ElasticSearch中的数据为

{
    "id": "19504ec6bacd46aca302dc7e848aa8a1",
    "@kind": "some_data",
    "@kind_id": 4,
    "timestamp": "2022-09-06T00:02:36.697Z",
    "data": "some data"
}
lh80um4z

lh80um4z1#

您可以在kind_id字段中使用terms aggregation来获得所需的结果。

{
    "size":0,
    "query": {
        "range": {
            "timestamp": {
                "gte": "now-1d/d",
                "lt": "now"
            }
        }
    },
    "aggs": {
        "distinct_kind": {
            "terms": {
                "field": "@kind_id"
            }
        }
    }
}

相关问题