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

Elasticsearch聚合如何计算每个桶日期与所属组最小日期的差值

解决方案

你可以通过bucket_script管道聚合的相对路径引用父层级聚合值,配合内置变量_key获取当前桶时间戳实现需求,修改后的聚合语句如下:

"id": {
    "terms": {
        "field": "data.id"
    },
    "aggs": {
        "min_date": {
            "min": {
                "field": "data.dateSold"
            }
        },
        "date": {
            "date_histogram": {
                "field": "data.dateSold",
                "calendar_interval": "year"
            },
            "aggs": {
                "sales": {
                    "sum": {
                        "field": "data.sales"
                    }
                },
                "difference_with_min_date": {
                    "bucket_script": {
                        "buckets_path": {
                            "min_date": "../min_date"
                        },
                        "script": "return _key - params.min_date"
                    }
                }
            }
        }
    }
}

关键说明

  • ../min_date是聚合路径的相对寻址写法,代表向上回溯一级到terms分组的聚合层级,获取对应分组的最小日期值
  • _key是管道聚合的内置变量,可直接读取当前date_histogram桶的时间戳key
  • 计算结果默认单位为毫秒,和你预期的输出格式完全一致

内容的提问来源于stack exchange,提问作者Ashley Kelham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:36:02