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
经验分享 程序员 微信小程序 职场和发展