You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Elasticsearch的date_histogram统计指定日期范围的文档数量

Elasticsearch按天统计空日期返回0查询调整方案

你当前使用的date_histogram聚合默认仅返回有命中文档的时间桶,无数据的日期不会被返回,仅需在聚合配置中增加两个参数即可满足需求:

  • 新增min_doc_count: 0配置:强制返回所有按天拆分的时间桶,无命中文档时计数为0
  • 新增extended_bounds配置:指定返回桶的时间边界,和查询过滤的时间范围对齐,确保整个查询区间内的所有天的桶都能被返回

调整后的完整查询语句如下:

{
    "size": 0,
    "query": {
        "filter": {
            "bool": {
                "must": [
                    {
                        "range": {
                            "@timestamp": {
                                "gte": "2021-10-05T00:47:13.555Z",
                                "lte": "2021-10-08T00:13:13.555Z",
                                "format": "strict_date_optional_time"
                            }
                        }
                    }
                ]
            }
        }
    },
    "aggs": {
        "data": {
            "date_histogram": {
                "field": "@timestamp",
                "calendar_interval": "day",
                "min_doc_count": 0,
                "extended_bounds": {
                    "gte": "2021-10-05T00:47:13.555Z",
                    "lte": "2021-10-08T00:13:13.555Z"
                }
                // 若需按国内时区统计天维度,可额外补充时区配置
                // "time_zone": "Asia/Shanghai"
            }
        }
    }
}

调整后返回的聚合结果会包含指定时间范围内所有按天拆分的桶,无文档的日期doc_count值为0,你可以直接从返回结果中提取到2021-10-06计数2、2021-10-07计数1的预期数据。

内容的提问来源于stack exchange,提问作者abinas patra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:09:03