1、在使用Date Math 时,最好指定时区信息,否则会导致解析的时间晚8个小时
场景:create Index,alias query 等可以使用Date Math的场景
错误样例:
GET <index_name_prefix-{now/d{YYYY-MM-dd*}>/_alias/alias_name
PUT <index_name_prefix-{now/d{YYYY-MM-dd}>
正确:
GET <index_name_prefix-{now/d{YYYY-MM-dd*|+08:00}>/_alias/alias_name
PUT <index_name_prefix-{now/d{YYYY-MM-dd|+08:00}>
注意:
2、 ES7.5以后 使用 index.lifecycle.origination_date 指定Index ILM的 min_age计算的起止时间
该问题可以减小index中的数据和当前索引创建日期差距
通过Update index settings API 指定
PUT /index_name/_settings
{
"index" : {
"lifecycle":{
"origination_date":1231231231231
}
}
}
3、注意 Date Math 中/d /M 取整含义
在数学日期表达式中,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
参考:
https://www.elastic.co/cn/blog/control-ilm-phase-transition-timings-using-origination-date
https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html
Elasticsearch——Date Math在索引中的用法详解