前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch——Date Math在索引中的用法详解

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

作者头像
用户1154259
发布2018-01-17 16:02:19
2.1K0
发布2018-01-17 16:02:19
举报

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

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

模式如下:

代码语言:javascript
复制
<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

注意,如果是中国的时间需要加上8个小时!

表达式

表示的值

<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.03.17 20:39:00

  • now/d,就是向一天取整,即2016.03.17 00:00:00
  • now/M,就是向一个月取整,即2016.03.01 00:00:00

它还支持加减法,比如

  • now+1h,就是2016.03.17 21:39:00
  • now-1d,就是2016.03.16 20:39:00

了解日期表达式的用法,在使用elasticsearch时是很必要的。

索引数据的例子

代码语言:javascript
复制
curl -XPOST 'localhost:9200/<test-\{now%2FM\}>/type/1?pretty' -d '{"name":"xing1",age:20}'
{
  "_index" : "test-2016.03.01",
  "_type" : "type",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}

注意:

  • 1 正常的日期表达式格式为 now/d,但是符号/必须经过编码才行
  • 2 大括号需要进行转义

查询数据的例子

使用起来跟索引数据时一样。

代码语言:javascript
复制
curl -XPOST 'localhost:9200/<test-\{now%2FM\}>/_search?pretty' -d '{"query":{"match_all":{}}}'
{
  "took" : 120,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "test-2016.03.01",
      "_type" : "type",
      "_id" : "1",
      "_score" : 1.0,
      "_source" : {
        "name" : "xing1",
        "age" : 20
      }
    } ]
  }
}

在所有带有index的API中,都支持上面的用法。

参考

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于日期数学表达式的索引
  • 日期数学表达式的例子
  • 索引数据的例子
  • 查询数据的例子
  • 参考
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档