gpt4 book ai didi

elasticsearch - elasticsearch最小桶数

转载 作者:行者123 更新时间:2023-12-02 22:57:55 25 4
gpt4 key购买 nike

我想在buckets.length(存储桶的数量/计数)具有最小计数的聚合上获得结果,有点像在SQL中。

(在此特定情况下,至少访问了5天的站点访问者。)

我的查询的一部分:

"aggs": {
"site_visitors": {
"aggs": {
"users": {
"terms": {
"field": "user_id",
"size": 0
},
"aggs": {
"daily_counts": {
"date_histogram": {
"field": "timestamp",
"interval": "1d"
}
}
}
}
}
}
}

在这里,我们有一个具有5个结果的存储桶(buckets.length)。大多数存储桶不会有5个或更多的结果,我也不希望所有这些结果。
{
"key": 123456,
"doc_count": 10,
"days_count": {
"buckets": [
{
"key_as_string": "2017-04-05T00:00:00.000Z",
"key": 1491350400000,
"doc_count": 2
},
{
"key_as_string": "2017-04-22T00:00:00.000Z",
"key": 1492819200000,
"doc_count": 1
},
{
"key_as_string": "2017-04-25T00:00:00.000Z",
"key": 1493078400000,
"doc_count": 4
},
{
"key_as_string": "2017-04-30T00:00:00.000Z",
"key": 1493510400000,
"doc_count": 2
},
{
"key_as_string": "2017-05-04T00:00:00.000Z",
"key": 1493856000000,
"doc_count": 1
}
]
}
}

我想获得每个存储桶中至少具有5个或更多结果(例如gte)的结果-不是doc_count,而是buckets.length。

有没有办法做到这一点?

最佳答案

您可以在"min_doc_count": 5聚合中添加date_histogram参数。

"aggs": {
"site_visitors": {
"aggs": {
"users": {
"terms": {
"field": "user_id",
"size": 0
},
"aggs": {
"daily_counts": {
"date_histogram": {
"field": "timestamp",
"interval": "1d"
}
},
"min_5_buckets_selector": {
"bucket_selector": {
"buckets_path": {
"count": "daily_counts._bucket_count"
},
"script": {
"inline": "params.count >= 5"
}
}
}
}
}
}
}
}

关于elasticsearch - elasticsearch最小桶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com