ES学习三-API规范

245 阅读1分钟

API规范

多索引

GET /test*/_search
GET /te*st/_search
GET /-test/_search
GET /_all/_search
  • *模糊匹配
  • -排除功能

所有多索引API都支持以下查询字符串参数:

  • ignore_unavailabe 控制是否忽略不可用索引,包括不存在的索引或者已关闭的索引。可以设置为truefalse
  • allow_no_indices 当通配符索引表达式结果为空时,控制请求是否会失败。可以指定truefalse。此设置也适用于别名,防止别名指向关闭的索引。
  • expand_wildcards 控制通配符索引表达式可以扩展到具体那种索引。如果指定了open,则通配符表达式将扩展为仅打开索引。如果指定了close,则扩展为关闭的索引。也可以指定这两个值open,closed以扩展到所有索引。

限制搜索索引的数量可以减少集群上的负载并提高执行性能。

日期数据格式

索引名称支持日期解析。

几乎所有具有index参数的API都支持index参数值中包含日期数学格式。日期数学索引名称具有以下形式:

<static_name{date_math_expr{date_format|time_zone}}>
  • static_name 是索引名称的静态文本部分
  • date_math_expr 是动态日期数学表达式,用于动态计算日期
  • date_format 用来设置日期的可选格式。默认为 yyyy.MM.dd格式,且应该与JAVA时间兼容。
  • time_zone 用来设置时区。默认为UTC。

日期数学表达式解析是独立于区域设置的。因此,除了公历外,不可使用任何其他形式的日历。

必须将日期数学格式索引名称表达式 括在 尖括号内,并且所有特殊字符都应进行URI编码。例如:

#GET /<logstash-{now/d}>/_search
GET /%3Clogstash-%7Bnow%2Fd%7D%3E/_search
{
   "query":{"match":{"test":"data"}}
}