日期公式索引名解析使你可以搜索一系列時間序列索引,而不是搜索全部時間序列索引並過濾結果或維護別名,限制搜索索引的數量能夠減小集羣上的負載並提升執行性能。例如,若是在天天的日誌中搜索錯誤,能夠使用日期公式名稱模版將搜索限制在過去兩天內。segmentfault
幾乎全部具備index
參數的API都支持index
參數值中的日期公式。性能
日期公式索引名採用如下形式:編碼
<static_name{date_math_expr{date_format|time_zone}}>
static_name
- 名稱的靜態文本部分。date_math_expr
- 動態計算日期的動態日期公式表達式。date_format
- 計算的日期應該呈現的可選格式,默認爲YYYY.MM.dd
。time_zone
- 可選時區,默認爲utc
。必須將日期公式索引名錶達式包含在尖括號中,而且全部特殊字符都應該使用URI編碼,例如:日誌
# GET /<logstash-{now/d}>/_search GET /%3Clogstash-%7Bnow%2Fd%7D%3E/_search { "query" : { "match": { "test": "data" } } }
用於日期四捨五入的特殊字符必須使用URI編碼,以下所示:code
< | %3C |
> | %3E |
/ | %2F |
{ | %7B |
} | %7D |
| | %7C |
+ | %2B |
: | %3A |
< | %3C |
, | %2C |
下面的示例顯示了不一樣形式的日期公式索引名,根據當前時間utc 2024年3月22日中午,解析的最終索引名。orm
表達式 | 解析爲 |
---|---|
<logstash-{now/d}> | logstash-2024.03.22 |
<logstash-{now/M}> | logstash-2024.03.01 |
<logstash-{now/M{YYYY.MM}}> | logstash-2024.03 |
<logstash-{now/M-1M{YYYY.MM}}> | logstash-2024.02 |
<logstash-{now/d{YYYY.MM.dd|+12:00}}> | logstash-2024.03.23 |
要在索引名稱模版的靜態部分中使用字符{
和}
,能夠使用反斜槓\
來轉義它們,例如:索引
<elastic\\{ON\\}-{now/M}> resolves to elastic{ON}-2024.03.01
下面的示例顯示了一個搜索請求,假設索引使用默認的Logstash索引名稱格式logstash-YYYY.MM.dd
,該請求將在過去三天內搜索Logstash索引。get
# GET /<logstash-{now/d-2d}>,<logstash-{now/d-1d}>,<logstash-{now/d}>/_search GET /%3Clogstash-%7Bnow%2Fd-2d%7D%3E%2C%3Clogstash-%7Bnow%2Fd-1d%7D%3E%2C%3Clogstash-%7Bnow%2Fd%7D%3E/_search { "query" : { "match": { "test": "data" } } }