ElasticSearch6.4 — Date math support in index names 译

在索引名称中支持日期数字

索引名称中带日期数字使你可以搜索一系列时间段的索引,而不是搜索全部时间的索引,然后过滤结果或者维护别名。限制搜索的索引数可以减少集群的负载并且提高执行性能,例如,如果你想在日常的日志中搜索错误,你可以使用日期数字名称将索引限制为过去两天。

几乎所有具有index参数的API都支持index参数值中的日期数学。

 

日期数字名称索引采用以下格式:

<static_name{date_math_expr{date_format|time_zone}}>

Where:

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" } } }

日期数字字符的百分比编码

特殊的日期必须是URL编码:

<

%3C

>

%3E

/

%2F

{

%7B

}

%7D

|

%7C

+

%2B

:

%3A

,

%2C

下列的例子表示不同的日期数字索引的格式和解析的最终索引名称,给定的当前时间是2024年3月22日中午utc。

日期数字索引表达式

解析后

<logstash-{now/d}>(当前天,默认时间格式,默认时区)

logstash-2024.03.22

<logstash-{now/M}>(当前月,默认时间格式,默认时区)

logstash-2024.03.01

<logstash-{now/M{YYYY.MM}}>(当前月,指定时间格式YYYY.MM,默认时区)

logstash-2024.03

<logstash-{now/M-1M{YYYY.MM}}>(当前月减1个月,指定时间格式YYYY.MM,默认时区)

logstash-2024.02

<logstash-{now/d{YYYY.MM.dd|+12:00}}>(当前天,指定时间格式YYYY.MM.dd,指定时区+12:00)

logstash-2024.03.23

为了再索引模版的静态部分使用大括号{和},可以用反斜杠\转义,例如:

  • <elastic\\{ON\\}-{now/M}> resolves to elastic{ON}-2024.03.01

下列例子表示搜索过去三天的Logstash索引,假设Logstash使用默认的索引名字logstash-YYYY.MM.dd

# 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" } } }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值