ES系列--api约定之multi-target syntax(多目标语法)

前言

官网文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html

官网文档其实很详细的,大家可能没有时间或精力去详细的阅读。

目前最新的是7.10,我使用的版本是7.8。

正文

多目标语法

大部分使用<data-stream>, <index>, <target>的请求都支持多目标语法。

例如,我们可以传递多个索引: test1,test2,test3,也可以使用通配符(*)去匹配符合条件的目标,比如 test* 或者 *test 或者 te*t 或者 *test*。同时可以使用-来排除索引。

# 示例
# 存在 [{'index': 'test1','alias': 'testa'}, {'index': 'test2','alias': 'testb'}, {'index': 'test3','alias': 'testc'}]

# 具体排除某个索引
GET test*,-test2/_search

# 排除某一类索引
GET test*,-te*t2/_search 

注意:

  1. 排除索引不能放在第一位GET -test2,test*/_search这样的写法是错误的,会报index_not_found_exception,no such index [-test2]。另外,排除的需要是前面包含的,否则也会报错。例GET test2,-test3/_search这种也是错误的。
  2. 通配符和排除同时使用的时候,排除不能用别名GET test*,-testb/_search这种还是会查询到test2里面的数据。
  3. Document APIssingle-index alias APIs 不支持多目标语法。
    1)Document APIs 主要是 文档的相关请求,包含增删改查,批量请求,reindex请求。
    官方文档
    2)single-index alias APIs 主要是 POST /_aliases 请求,包含别名的增加移除等。
    官方文档
  4. 默认情况下,通配符的索引不包含已隐藏的索引。如果要包含,可以使用参数expand_wildcards
  5. 不建议直接访问或修改系统索引。

其它可选参数:
ignore_unavailable
(可选,布尔值)默认为false。如果为true,则响应中不包括缺少或闭合的索引。
举例:

GET test1,test4/_search
# 当test4不存在时,运行报错 index_not_found_exception,该参数可避免此报错
GET test1,test4/_search?ignore_unavailable=true 
# 这个可以正常运行,并返回test1中的数据

allow_no_indices
(可选,布尔值)如果为false,则任何通配符表达式,索引别名或_all值仅以缺少或关闭的索引为目标时,请求将返回错误 。即使该请求针对其他打开的索引,此行为也适用。例如,foo*,bar*如果以foo开头的索引存在,但以bar开头的索引不存在,则请求定位将返回错误。

allow_no_indices 和 ignore_unavailable 的异同:
1.都是用来防止包含不存在索引或已关闭索引的错误。
2.ignore_unavailable的作用范围大,控制的是任何索引包括带通配符和不带通配符的,
allow_no_indices 控制的是带通配符,别名或_all的索引。

expand_wildcards
(可选,字符串)控制通配符表达式可以扩展到的索引类型。如用逗号分隔,则接受多个值 open,hidden。
有效值为:

解释
allopen and closed indices, including hidden indices.
openopen indices
closedclosed indices
hiddenhidden indices,但是必须和open或者close连用,或两个一起连用
none不允许使用通配符

另外一些支持多目标语法的指向indices还支持下面的可选参数:
ignore_throttled
(可选,布尔值)默认为true。如果为true,冻结的索引会被忽略。如果我们要包含已冻结的索引,可以设置为false。


想要了解更多,可以通过 elk相关知识地图 来找到你想要了解的部分进行查看。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值