Elasticsearch 参考指南(索引名中的日期公式支持)
索引名中的日期公式支持
日期公式索引名解析使你能够搜索一系列时间序列索引,而不是搜索所有时间序列索引并过滤结果或维护别名,限制搜索索引的数量可以减少集群上的负载并提高执行性能。例如,如果在每天的日志中搜索错误,可以使用日期公式名称模版将搜索限制在过去两天内。
几乎所有具有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编码,如下所示:
< | %3C |
> | %3E |
/ | %2F |
{ | %7B |
} | %7D |
| | %7C |
+ | %2B |
: | %3A |
< | %3C |
, | %2C |
下面的示例显示了不同形式的日期公式索引名,根据当前时间utc 2024年3月22日中午,解析的最终索引名。
表达式 | 解析为 |
---|---|
<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 /<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" } } }
上一篇:多索引
相关推荐
AFei00 2020-07-26
goodstudy 2020-08-19
weikaixxxxxx 2020-08-01
liulin0 2020-07-26
娜娜 2020-07-20
偏头痛杨 2020-07-18
winxcoder 2020-07-18
superviser000 2020-06-28
liulin0 2020-06-25
liulin0 2020-06-16
wangfengqingyang 2020-06-11
cullinans 2020-06-09
winxcoder 2020-06-08
citic 2020-06-06
goodstudy 2020-06-05
superviser000 2020-05-30
yuzhongdelei0 2020-05-15
wzhwangzhuohui 2020-05-12
李玉志 2020-05-11