如何在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
相关产品推荐
相关产品推荐

