Elasticsearch Date Math&ILM 杂记
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