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

Elasticsearch 7.11.x如何为现有查询添加@timestamp日期范围过滤条件

你需要将原单条件match查询改为bool组合查询,同时在过滤规则中加入带时区配置的日期范围限制即可实现需求,修改后的完整查询如下:

POST metrics-general-dev-000049/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "match": {
            "source": "investigation-data-depot"
          }
        },
        {
          "range": {
            "@timestamp": {
              "gte": "2021-08-20",
              "lt": "2021-08-22",
              "time_zone": "MST"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "time_buckets": {
      "date_histogram": {
        "field": "@timestamp",
        "fixed_interval": "1d",
        "extended_bounds": {
          "min": "2021-08-20",
          "max": "2021-08-21"
        },
        "min_doc_count": 0,
        "time_zone": "MST"
      }
    }
  },
  "size": 0
}

关键修改说明

  • 用bool.filter组合两个过滤条件:两个规则会同时生效,且filter上下文不需要计算相关性评分,查询性能优于must子句
  • 日期范围查询显式指定time_zone: "MST":Elasticsearch默认使用UTC时区处理日期,旧示例大多未指定时区导致范围偏移,这是之前规则不生效的核心原因
  • 日期上限使用lt: "2021-08-22":可以完整覆盖MST时区8月20日、8月21日两天的所有数据,避免因时间精度问题漏掉8月21日23:59:59之后的毫秒级记录
  • 聚合配置同步调整:将date_histogram的extended_bounds改为目标日期范围,同时同步添加时区配置,保证聚合返回的时间桶和你指定的时区范围一致

内容的提问来源于stack exchange,提问作者James DePaul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:36:03