在Elasticsearch,有时要通过索引日期来筛选某段时间的数据,这时就要用到ES提供的日期数学表达式

  描述:

  特别在日志数据中,只是查询一段时间内的日志数据,这时就可以使用日期数学表达式,这样可以限制检索的索引数量,减少集群的负载,提高系统性能。

  几乎所有的API都支持日期索引中的数学参数值。

  基于日期数学表达式的索引:

<static_name{date_math_expr{date_format|time_zone}}>

  其中各个字段的含义是:

  static_name:索引名字的静态部分

  date_math_expr:动态的日期表达式

  date_format:格式化,默认是YYYY.MM.dd

  time_zone:时区,默认是UTC

需要注意的是,在使用时要把索引以及日期表达式的部分放在<>尖括号内。

日期数学表达式的例子

比如现在的时间是2024年3月22日中午12点.utc

表达式

表达式的值
 <test-{now/d}>  test-2024.03.22
 <test-{now/M}>  test-2024.03.01
 <test-{now/M{YYYY.MM}}>  test-2024.03
 <test-{now/M-1M{YYYY.MM}}> test-2024.02 
 <test-{now/d{YYYY.MM.dd\|+12:00}}> test-2024.03.23 

在数学日期表达式中,now就是现在的时间2016.05.09 14:11:26

  • now/d,就是向一天取整,即2016.05.09 00:00:00.
  • now/M,就是向一个月取整,即2016.05。01 00:00:00

它还支持加减法,比如:

  • now+1h,就是2016.05.09 14:14:23
  • now-1d,就是2016.05.09 14:15:04

索引数据的例子

curl -XPOST '192.168.204.32:9200/<test-\{now%2FM\}>/type/1?pretty' -d '{"name":"xing1",age:20}'‘
{
"_index" : "test-2016.05.01",
"_type" : "type",
"_id" : "",
"_version" : 1,
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : true
}  

注意:

  • 1 正常的日期表达式格式为now/d,但是/必须经过编码也就是%2F
  • 2 这里面所用到的大括号也要进行转义才行

查询数据的例子

# curl -XPOST '192.168.204.42:9200/<test-\{now%2FM\}>/_search?pretty' -d '{"query":{"match_all":{}}}'
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "test-2016.05.01",
"_type" : "type",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"name" : "xing1",
"age" : 20
}
} ]
}
}

几本上所有api索引参数,支持日期索引中数学参数值。

参考

1 官方文档:Date Math support in index names

Elasticsearch--Date math在索引中的使用的更多相关文章

  1. Elasticsearch——Date Math在索引中的用法详解

    在elasticsearch中,有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式. 更多内容参考Elasticsearch翻译汇总 基于日期数学表达式的索引 模式如下: <s ...

  2. elasticsearch迁移数据到新索引中

    因为业务原因,需要修改索引的映射的某个字段的类型,比如更改Text为Keyword. 需要如下步骤: 1).先新建索引,映射最新的映射实体 2).迁移老索引的数据到新索引中(数据较大的话,可以分批迁移 ...

  3. [Elasticsearch] 向已存在的索引中加入自己定义filter/analyzer

    问题描写叙述 随着应用的不断升级,索引中的类型也会越来越多,新添加的类型中势必会使用到一些自己定义的Analyzer.可是通过_settings端点的更新API不能直接在已经存在的索引上使用. 在se ...

  4. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  5. Elasticsearch之_default_—— 为索引添加默认映射

    前篇说过,ES可以自动为文档设定索引.但是问题也来了——如果默认设置的索引不是我们想要的,该怎么办呢? 要知道ES这种搜索引擎都是以Index为实际的分区,Index里面包含了不同的类型,不同的类型是 ...

  6. Elasticsearch date 类型详解

    引言 一直对 elasticsearch 中的 date 类型认识比较模糊,而且在使用中又比较常见,这次决定多花些时间,彻底弄懂它,希望能对用到的同学提供帮助. 注意:本文测试使用是 elastics ...

  7. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...

  8. ElasticSearch搜索引擎在JavaWeb项目中的应用

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  9. ES之四、Elasticsearch集群和索引常用命令

    REST API用途 elasticsearch支持多种通讯,其中包括http请求响应服务,因此通过curl命令,可以发送http请求,并得到json返回内容. ES提供了很多全面的API,常用的RE ...

随机推荐

  1. linux i2c 设备节点读写

    最近需要操作24C02,封装了一下函数方便以后操作. 参考链接: https://my.oschina.net/handawei/blog/68526 http://blog.csdn.net/one ...

  2. miaov- 自动生成正V反V大于号V小于号V楼梯等图案

    1. 核心:控制 数量的长度-1-i的位置,是放在left上还是top上?是放在前面还是后面! <!DOCTYPE html> <html lang="en"&g ...

  3. dede完美分页样式

    html <div class="dede_pages">              <ul class="pagelist">     ...

  4. 美团、点评、猫眼App下拉加载效果的源码分享

    今天我准备拿大众点评.美团.猫眼电影三款App的实例来分享一下APICloud下拉加载这个模块的效果. 美团App下拉加载效果   以美团中的下拉酷似动画的萌萌着小人儿效果作为参考,来实现的一个加载模 ...

  5. NPOI 导入,导出EXCEL

    代码: public static class NPOIExcelHelper { /// <summary> /// DataTable导出到Excel文件 /// </summa ...

  6. 无线AP_H3C WA2620i-AGN配置

    设置Console口登录AP设备的用户进行密码认证: <Sysname> system-view //进入系统视图 [WA2620i-AGN]user-interface console ...

  7. Oracle SQLserver数据库创建表ID字段的自动递增_序列

    Oracle 将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id ),userid ),loginpasswo ...

  8. hadoop NameNode 手动HA

    官网配置地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWit ...

  9. RPC、SQL、NFS属于OSI的哪一层

    第一层:物理层 第二层:数据链路层 802.2.802.3ATM.HDLC.FRAME RELAY 第三层:网络层 IP.IPX.ARP.APPLETALK.ICMP 第四层:传输层 TCP.UDP. ...

  10. Android基本控件属性设置

    EditText: EditText去边框:<EditText  android:background="@null"  /> EditText的hint的字体大小的设 ...