Elasticsearch 时间范围查询

ES Elasticsearch日期范围查询和查不出的坑 按日期范围查询 如果字段为字符串类型,需要在字段后面加 .keyword 不加会出现查不出的问题。 查询范围有两种方式 方式一: GET /xq_jdctxxx/_search { "query": { "range": { "cjsj.keyword": { "from": "2022-01-27", "to": "2022-03-11" } } } } 方式二 GET xq_jdctxxx/_search { " 阅读详情
AI摘要

本文介绍了在Elasticsearch中如何进行时间范围查询,包括使用date-math表达式进行加减运算,例如`now-1d/d`和`now/d`。还详细解释了时间的四舍五入规则,以及在`gt`,`gte`,`lt`,`lte`条件下的不同舍入行为。此外,文章还提到了格式化日期查询,允许通过`format`参数自定义日期格式。

时间范围查询

简单示例

GET /_search
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "now-1d/d", // 当前时间的上一天, 四舍五入到最近的一天
        "lte": "now/d" // 当前时间, 四舍五入到最近的一天
      }
    }
  }
}

关于时间的数学表达式(date-math)

Elasticsearch中时间可以表示为now, 也就是系统当前时间, 也可以是以||结尾的日期字符串表示.

在日期之后, 可以选择一个或多个数学表达式:

  • +1h —— 加1小时;
  • -1d —— 减1天;
  • /d —— 四舍五入到最近的一天.

下面是Elasticsearch支持数学表达式的时间单位:

表达式含义表达式含义
y年M月
w星期d天
h小时H小时
m分钟s秒

说明: 假设系统当前时间now = 2018-10-01 12:00:00 :

now+1h: now的毫秒值 + 1小时, 结果是: 2018-10-01 13:00:00.
now-1h: now的毫秒值 - 1小时, 结果是: 2018-10-01 11:00:00.
now-1h/d: now的毫秒值 - 1小时, 然后四舍五入到最近的一天的起始, 结果是: 2018-10-01 00:00:00.
2018.10.01||+1M/d: 2018-10-01的毫秒值 + 1月, 再四舍五入到最近一天的起始, 结果是: 2018-11-01 00:00:00

关于时间的四舍五入

官方:时间的四舍五入
对日期中的日、月、小时等 进行四舍五入时, 取决于范围的结尾是包含(include)还是排除(exclude).

向上舍入: 移动到舍入范围的最后一毫秒;

向下舍入: 一定到舍入范围的第一毫秒.

举例说明:

① “gt”: " 2014-11-18||/M" —— 大于日期, 需要向上舍入, 结果是 2014-12-01T00:00:00.000, 也就是不包含整个11月.

② “gte”: “2014-11-18||/M” —— 大于或等于日期, 需要向下舍入, 结果是 2014-11-01T00:00:00.000, 也就是包含整个11月.

③ “lt”: “2014-11-18||/M” —— 小于日期, 需要向上舍入, 结果是2014-10-31T23:59:59.999, 也就是不包含整个11月.

④ “lte”: “2014-11-18||/M” —— 小于或等于日期, 需要向下舍入, 结果是2014-11-30T23:59:59.999, 也就是包含整个11月.

日期格式化范围查询(format)

格式化日期查询时, 将默认使用日期field中指定的格式进行解析, 当然也可以通过format参数来覆盖默认配置.

示例:

GET website/_search
{
    "query": {
        "range": {
            "post_date": {
                "gte": "2/1/2018", 
                "lte": "2019",
                "format": "dd/MM/yyyy||yyyy" \\这里的||表示或
            }
        }
    }
}

注意: 如果日期中缺失了部分年、月、日, 缺失的部分将被填充为如下默认值:

MONTH_OF_YEAR:    01
DAY_OF_MONTH:     01
HOUR_OF_DAY:      23
MINUTE_OF_HOUR:   59
SECOND_OF_MINUTE: 59
NANO_OF_SECOND:   999_999_999

如果format为 yyyy-MM, Elasticsearch 将 2099-12 转成 2099-12-01T23:59:59.999_999_999Z. 没写全的format部分用默认值取代。

参考

【官方】date数学计算
【官方】date的range查询
【官方】format格式
Elasticsearch中如何进行日期(数值)范围查询

基于es查询语法的时间范围日志查询:核心要点解析 深入解析如何利用es查询语法高效检索特定时间范围内的日志数据,掌握常用的时间字段过滤与查询性能优化技巧,提升日志分析效率。 阅读详情

相关推荐

Spring Boot进阶(31):时间范围查询不再困难!使用QueryBuilders进行组合查询,轻松操作Elasticsearch

Elasticsearch基本操作之使用QueryBuilders进行范围时间组合查询,一文教会你。

**My Coding Family** 3万+

Elasticsearch中如何进行日期(数值)范围查询总结

踩遍所有烂坑的我又来总结了····哎····希望帮到有缘人吧··基本的用法我套用的网上大部分人的,自己踩出来的坑字体用颜色区分了,你懂吧。

qq_44810785的博客 1万+

【C++ 使用libxlsxwriter库向excel表格中插入图片 CMake + VS2019】

使用libxlsxwriter向excel表格插入图片

恒星游历者的博客 755

ElasticSearch 实战:ES中如何进行日期(数值)范围查询

在Elasticsearch中进行日期或数值范围查询,你可以使用range查询。以下是如何使用range。

qq_33240556的博客 7361

ESP32语音交互实战:离线唤醒与DeepSeek大模型集成

本文详细介绍了如何将ESP32-S3开发板与天问ASRPRO语音模块结合,实现离线语音唤醒并集成DeepSeek大模型的智能交互系统。通过串口通信与API调用,系统可处理本地指令及复杂语义请求,适用于低成本、高隐私保护的AIoT语音交互场景。

rust6ferris的博客 869

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5070

Java客户端根据时间范围查询es中的数据

需求:根据时间范围,查询es中的数据 说明:在使用logstash将关系型数据库中的数据抽到es中时,需要转为时间搓格式保存,这样就可以根据时间搓进行时间范围查询了 注意:如果不对时间字段做处理,默认的保存格式不方便进行时间范围查询 默认保存到es中的时间格式: 这种格式不方便我们的客户端进行时间范围查询 logstash抽取mysql中的数据时,对于datetime类型的字段,可以使用unix...

wyj180的博客 1万+

博通PEX89000 PCIe 5.0交换芯片:如何为AI集群构建高效GPU互联架构

本文深入解析了博通PEX89000 PCIe 5.0交换芯片如何为AI集群构建高效的GPU互联架构。该芯片通过提供高带宽、低延迟的PCIe 5.0交换能力,打破传统GPU通信的带宽瓶颈,并支持多主机共享、资源池化及软件定义拓扑,从而显著提升大规模AI训练与推理任务的效率与资源利用率。

weixin_29214559的博客 411

关于easy-es对时间范围查询遇到的小bug

在使用easy-es之前作为一个小白的我只有es原生查询的基础,在自己通过查看官方文档自学easy-es遇到了一个挫折,其他的还好语法和MybatisPlus差不多,正以为我觉得很快就能入手,在对。

乄bluefox - 优快云博客 1395

科研绘图系列:R语言绘制宏基因组分析的可视化图形(network & barplot & heatmap)

科研绘图系列:R语言多图形组合(network & barplot & heatmap)

专注生信领域 644

基于YOLOv8的人群聚集检测系统:含UI界面设计与数据集应用

人群聚集检测是智慧城市、公共安全和疫情防控等领域的重要任务。本文结合YOLOv8最新目标检测技术,设计并实现了一个高效的人群聚集检测系统,支持可视化UI界面操作,方便用户实时检测和分析视频中的人群密度。本文详细介绍了系统设计思路、使用的数据集、YOLOv8模型训练和推理过程,以及UI界面的开发与整合。最后通过实验验证了该系统的实用性和性能表现。更灵活的模型架构强化的特征融合网络(PAN++)自动混合精度训练支持支持多任务学习(目标检测+分类+分割)预训练模型丰富,适应多种应用场景。

YOLO 433

ES 查询语句之时间范围搜索

ES 查询语句之时间范围搜索

Leon_Jinhai_Sun的博客 1410

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 93

python timestamp 时间区间_通过时间戳对es进行时间范围查询

前言今天对公司对一个报警脚本进行改造,遇到了一个ES查询问题,在此进行记录,已做备忘。报警脚本逻辑,通过查询es中对访问日志,判断微服务接口的错误信息和微服务接口响应延迟进行报警,报警内容包含48小时内此微服务的错误信息和响应延迟出现次数,供运维和研发判断重要性。但是由于晚上服务器会跑一些计算数据,导致磁盘和网络IO进行大量占用,就会导致凌晨的一些响应延迟报警频发,对此我们设置了凌晨维护时间,这个...

weixin_39649611的博客 1522

【即插即用模块】卷积篇 | TGRS 2025 | HLKConv:小核+空洞=大核,感受野一致,但更轻更准!

本文介绍了分层大核卷积模块HLKConv,该模块通过动态大核+空洞卷积实现高效感受野扩展,将超大核卷积分解为小核+空洞卷积(如53×53核用17×17+dilation=3实现),计算量仅为普通大核的1/10。模块采用双分支设计:基础卷积分支捕捉局部细节,大核空洞分支捕捉长距离关联,通过1×1卷积融合。实验表明HLKConv在红外小目标检测中优于传统大核卷积,适用于高分辨率视觉任务。代码实现了不同核尺寸的配置,输入输出特征维度保持不变,计算效率显著提升。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 346

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ElasticSearch使用kibana控制台查询示例(时间范围查询)

记录一下日期查询问题 "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" # 创建索引 PUT my_date1 { "mappings": { "properties": { "publicDate": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis", // 不管

图图小淘气的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ElasticSearch编程实例—时间范围查询

一般情况下,把java.util.Date存储到 Elasticsearch ,然后从 Elasticsearch  中再取出来的时候,要想保证它是个Date ,需要做额外任何转换。本文介绍如何在ElasticSearch中进行时间范围查询操作。 public class EsMulConditionQuery { private static String index = "test_in

午夜阳光 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

elasticsearch查询(多条件、时间范围、分页 )

代码: public List queryByTagLogs(String logType, Map&amp;amp;lt;String, Object&amp;amp;gt; contextMap, Date startTime, Date endTime) { List list = new ArrayList(); // 1.创建并设置SearchSourceBuilder对象 ...

jsiostream的博客 1万+

Elasticsearch模糊查询、多字段in查询、时间范围查询,DSL和java API两种方式

项目场景: Elasticsearch模糊查询某字段,通过DSL和java API两种方式 解决方案: wildcard 通配符检索 使用wildcard相当于SQL的like,前后都可拼接*,匹配0到多个任意字符 { "query": { "wildcard": { "name.keyword": "*文件*" } } } BoolQueryBuilder queryBuilder = QueryBuilde.

Gzzz的博客 8257

ElasticSearch6.X时间范围查询无效bug

ElasticSearch6.X时间范围查询无效bug 1.es6.8.1版本时间范围查询,原始写法如下: GET /oms_historyalarm.historyalarm_recent/historyalarm_recent/_search { "query":{ "range":{ "fault_start_time":{ "from":"2019-10-28 00:00:00",

Douglas的博客 3675

elasticsearch时间范围查询_Elasticsearch 搜索的高级功能学习

在文章 Elasticsearch 入门学习 中介绍了 Elasticsearch 的基础概念以及一些常用的 API。这篇文章是继续对 Elasticsearch 中一些高级的搜索功能的学习和总结:搜索的相关性以及算分机制是什么是相关性算分?相关性算分描述了一个文档和查询语句的匹配程度,ES 会对查询到的每个文档进行打分,打分的本质就是排序ES5 之前默认的相关性打分采用 TF-IDF 算法,TF...

weixin_28932927的博客 7421

ES: 按时间范围查询

public Map<String,Date> getTopOneHundredOutdatedProjectMemberIdsFromES(){ Map<String,Date> projectMemberUpdatedTimeMap=new HashMap<>(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str.

amadeus_liu2的博客 4471

elasticsearch时间范围查询_一次有趣的Elasticsearch+矩阵变换聚合实践

序言Elasticsearch聚合功能非常丰富,性能也相当不错,特别适合实时聚合分析场景,但在二次聚合上也有明显短板,不支持。项目是一个基于日期维度做预处理的技术方案,以下是结合Elasticsearch优缺点扬长避短的一次尝试性实战,非常有意思,希望可以带来一些参考,同时欢迎各种讨论。需求背景公司所属行业是物流速运,面向企业服务(简称ToB模式),提供多种物流运输方案产品,客户分布遍布全国,客户...

weixin_30824577的博客 702

前端从Elasticsearch表中查询数据,通过时间范围查询,以及过滤条件不生效问题解决,以及Elasticsearch-head工具可视化查询语句使用

查表时希望根据DateTime字段获取某时间段的数据: 对应前端查询代码: const url='http://ip:port/表名/_search' const body: any = { query: { bool: { must: [ { match: { name:'测试' } } ],

lingliu0824的博客 2418

elasticsearch时间范围查询_亿级 Elasticsearch 性能优化

前言最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统。在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都超过亿级别,甚至达到百亿级别。所以趁着有空,就花点时间整理一下具体怎么做 Elasticsearch 性能优化,希望能对 Elasticsearch 感兴趣的同学有所帮助。背景Elasticsearch...

weixin_33404919的博客 1195
上一篇: Scala动态创建对象,scala反射
下一篇: scala 短文本相似度计算
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值