gpt4 book ai didi

Elasticsearch:根据日期范围聚合文档

转载 作者:行者123 更新时间:2023-11-29 02:56:03 25 4
gpt4 key购买 nike

我在 ElasticSearch 5.5 中有一组文档,其中包含两个日期字段:start_date 和 end_date。我想将它们聚合到日期直方图桶中(例如:每周),这样如果 start_date < week X < end_date,则文档将位于“week X”桶中。这意味着单个文档可能位于多个存储桶中。

考虑以下具体示例:我有一组描述公司员工的文档,对于每个员工,您都有聘用日期和(可选)终止日期。我想构建过去 12 个月的活跃员工数量的日期直方图。

示例文档内容:

{
"start_date": "2013-01-12T00:00:00.000Z",
"end_date": "2016-12-08T00:00:00.000Z",
"id": "123123123"
}

有没有办法在 ES 中做到这一点?

最佳答案

我找到了一种方法,使用过滤器聚合 ( https://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregations-bucket-filter-aggregation.html ).如果我需要,比方说,12 个月的报告,那么我会创建 12 个桶,其中每个桶定义过滤条件,例如:

"bool":{
"must":[{
"range":{
"start_date":{
"lte":"2016-01-01T00:00:00.000Z"
}
}
},{
{
"range":{
"end_date":{
"gt":"2016-02-01T00:00:00.000Z"
}
}
}]
}

但是,我觉得如果有一种更简单的方法来执行此操作会很好,因为如果我想说尾随 365 天,这意味着我必须创建 365 个桶过滤器,这使得结果查询非常大。

关于Elasticsearch:根据日期范围聚合文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456594/

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