索引名日期格式支持

索引名日期格式允许你搜索一系列时间序列格式的索引,而不用搜索全部的索引然后过滤结果,或者使用别名。限制搜索的索引个数可以降低集群负载提高搜索性能。例如如果你要从你每天的日志中搜索错误信息,你可以使用日期格式索引名模板限制搜索过去两天的索引。

日期计算索引名格式如下:

\

说明:

  • static_name:索引名静态部分
  • date_math_expr:动态日期表达式,用来动态计算日期的。
  • date_format:供时间计算的日期格式,默认格式 YYYY.MM.dd
  • time_zone:时区,默认是 utc

你需要用尖括号把日期格式索引名包括起来,例如:

curl -XGET ‘localhost:9200//_search’ { “query” : { … } }

注意:括号中的 / 符号必须用 Url 编码 %2F 代替。

下面的例子展示了不同格式的日期格式索引,当前的日期为2024年3月22日晚上,时区 utc。

表达式 解析结果
logstash-2024.03.22
logstash-2024.03.01
logstash-2024.03
logstash-2024.02

在索引名静态部分使用{}作为模板,使用反斜杠/转义它们。例如:

  • 转换成 elastic{ON}-2024.03.01

下面的例子,搜索三天内Logstash的索引,假设我们的索引名格式为:logstash-YYYY.MM.dd

curl -XGET ‘localhost:9200/,,/_search’ { “query” : { … } }