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

如何在OpenSearch聚合查询中添加时间范围过滤以限制结果

问题:如何将时间范围过滤整合到OpenSearch聚合查询中?

我是OpenSearch新手,在官方文档中未找到相关解决方法。我有如下聚合查询:

{
    "size": 0,
    "aggs": {
        "records_per_day": {
            "date_histogram": {
                "field": "@timestamp",
                "interval": "day"
            }
        }
    }
}

该查询返回大量结果,我想要添加过滤条件,仅展示最近7天内的记录,对应的过滤查询如下:

{
    "query": {
        "range": {
            "@timestamp": {
                "from": "now-7d",
                "to": "now"
            }
        }
    }
}

请问如何将这个过滤条件整合到第一个聚合查询中?


解决方案

直接将query部分合并到原聚合查询的顶层结构即可,OpenSearch支持在同一请求中同时指定过滤条件与聚合逻辑。整合后的完整查询如下:

{
    "size": 0,
    "query": {
        "range": {
            "@timestamp": {
                "from": "now-7d",
                "to": "now"
            }
        }
    },
    "aggs": {
        "records_per_day": {
            "date_histogram": {
                "field": "@timestamp",
                "interval": "day"
            }
        }
    }
}

这个查询会先通过range条件筛选出最近7天的记录,再对筛选后的结果执行按天聚合操作,最终仅返回这7天内的每日记录统计数据。


内容的提问来源于stack exchange,提问作者Surender Khairwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:54:54