首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch最小存储桶计数

elasticsearch最小存储桶计数
EN

Stack Overflow用户
提问于 2017-07-20 21:59:35
回答 1查看 730关注 0票数 1

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

(在此特定场景中,访问过至少5天的站点访问者。)

我的问题的一部分:

代码语言:javascript
复制
"aggs": {
    "site_visitors": {
        "aggs": {
            "users": {
                "terms": {
                    "field": "user_id",
                    "size": 0
                },
                "aggs": {
                    "daily_counts": {
                        "date_histogram": {
                            "field": "timestamp",
                            "interval": "1d"
                        }
                    }
                }
            }
        }
    }
}

这里我们有一个包含5个结果的存储桶(buckets.length)。大多数存储桶不会有5个或更多的结果,我不想要所有这些结果。

代码语言:javascript
复制
{
     "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。

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2017-07-20 22:07:34

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

代码语言:javascript
复制
"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"
                           }
                        }
                    }
                }
            }
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45216942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档