elasticsearch时间搜索

在Elasticsearch中,now/d 是一个非常实用的日期数学表达式,它表示将当前时间向一天进行取整,即返回到当天的00:00:00时刻。

基本概念

now/d 的含义是将当前时间四舍五入到最近的一天的起始时间。例如,如果当前时间是2026年1月29日17:59:18,那么 now/d 就表示2026年1月29日00:00:00。

实际应用场景

  1. 查询当天数据
sql 复制代码
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "now/d",
        "lt": "now"
      }
    }
  }
}
  1. 查询昨天数据
sql 复制代码
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "now-1d/d",
        "lt": "now/d"
      }
    }
  }
}
  1. 查询本周数据
sql 复制代码
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "now/w",
        "lt": "now"
      }
    }
  }
}

这可以查询从本周开始到现在的所有数据。

与其他时间表达式的结合

now/d 可以与其他时间表达式组合使用:

now-1d/d:昨天的开始时间

now+1h/d:一小时后的时间取整到天

now-1w/d:一周前时间取整到天

时区考虑

在使用 now/d 时,需要注意时区设置,特别是在处理中国时间时,需要加上8小时的偏移量。

性能优化建议

在进行日期范围查询时,使用 now/d 这样的表达式可以帮助Elasticsearch更好地利用查询缓存。

相关推荐
霑潇雨2 小时前
Flink转换算子——filter
java·大数据·flink
萤丰信息2 小时前
智慧园区:以技术赋能,构筑安全便捷的现代化生态空间
大数据·人工智能·科技·安全·智慧城市·智慧园区
weixin199701080162 小时前
B2Bitem_get - 获取商标详情接口对接全攻略:从入门到精通
java·大数据·算法
freepopo2 小时前
天津商业空间设计:本地团队的美学落地方案 [特殊字符]
大数据·人工智能·python
数琨创享TQMS质量数智化2 小时前
国有大型交通运输设备制造集团QMS质量管理平台案例
大数据·人工智能·物联网
yhdata2 小时前
绿色能源新动力:硫酸亚铁助力锂电池产业,年复合增长率攀升至14.8%
大数据·人工智能
Hellc0073 小时前
Jenkins 上下游 Job + Docker 镜像部署完整实战(避坑版)
java·docker·jenkins
是垚不是土3 小时前
OpenTelemetry+Jaeger+ES:分布式链路追踪实战部署
大数据·linux·运维·分布式·elasticsearch·全文检索
八月瓜科技3 小时前
AI侵权频发:国内判例定边界,国际判决敲警钟
大数据·人工智能·科技·深度学习·机器人