页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

Date math 索引名称解析可以让您搜索一系列 time-series indices(时间序列索引),而不是搜索所有时间序列索引并过滤结果或维护 aliases(别名)。限制搜索的索引数量减少了集群上的集群上的负载,并提高了执行性能。例如,如果您在日常日志中(别名)。限制搜索的索引数量减少了集群上的负载,并提高了执行性能。例如,如果您在日常日志中 searching for errors(搜索错误 ),则可以使用 date math name 模板将搜索限制为过去两天。

几乎所有的具有索引参数的 API 都支持在 index parameter value(索引参数值)中包含 date math

date math 索引名称采用以下形式 : 

代码块
languagebash
<static_name{date_math_expr{date_format|time_zone}}>

上述的说明 : 

位置说明
static_name是名称的 static text 静态文本)部分
date_math_expr是动态计算日期的动态 date math 表达式
date_format是计算日期应呈现的可选格式。默认是 YYYY.MM.dd
time_zone是可选的时区。默认为 utc

你必须将 date math 索引名称表达式包含在尖括号中,并且所有的特殊字符都应进行 URI 编码。例如 : 

代码块
languagebash
themeEclipse
# GET /<logstash-{now/d}>/_search
curl -XGET 'localhost:9200/%3Clogstash-%7Bnow%2Fd%7D%3E/_search?pretty' -H 'Content-Type: application/json' -d'
{
  "query" : {
    "match": {
      "test": "data"
    }
  }
}
'
信息
titleNote(注意):

date math 字符的百分号编码

用于 date 舍入的特殊字符必须按照如下 URI 编码 :

字符编码

<

%3C

>%3E
/

%2F

{%7B
}%7D
|

%7C

+%2B
:%3A

,

%2C

以下示例显示了不同形式的 date math index names(日期数学索引名称)和它们解析的 final index names(最终索引名称),它们给定的当前时间是 2024 22 日中午 utc

表达式解析结果
<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

为了在索引名称模板的 static part(静态部分)中使用字符 { 和 } ,使用 \ 对其进行转义,例如 : 

代码块
languagebash
themeEclipse
<elastic\\{ON\\}-{now/M}> resolves to elastic{ON}-2024.03.01

下面的示例显示了一个搜索请求,搜索 LogStash 索引在过去的三天里,假设索引使用默认的 LogStash 索引名称格式, logstash-YYYY.MM.dd 。

代码块
languagebash
themeEclipse
# 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"
    }
  }
}