3.4.2.11.Index alias
创作人:杨松柏
别名的优势
索引别名是一个非常好的“工具”,它可以帮助解决以下问题:
l 如果对写入 Elasticsearch 的数据进行极少的修改,索引别名+ Rollover 可以很好控制每个索引的大小,零停机切换索引;合适的索引大小可以提升数据的查询性能,数据恢复性能。
l 解耦 client 与索引的强耦合,Elasticsearch 维护人员可以对索引有更灵活的操作空间,且让用户侧无感知。
l 结合 Reindex 可以很方便的完成索引重建。
l 过滤别名和路由别名可以在一定程度上帮助提升查询性能。
l 如果要一次查询多个索引,别名可以使 URI 变得简洁。
什么是别名
别名,是为一个或多个索引而命名的第二名称,第二名称不得与集群中任何索引同名;只要把第二名称和真实索引建立绑定关系,便可以使用别名对索引进行相关的操作。
别名管理
别名创建
索引别名的 REST 语法如下:
#索引别名 PUT /<index>/_alias/<alias>?master_timeout=<time>&timeout=<time> #过滤别名,路由别名 PUT /<index>/_alias/<alias>?master_timeout=<time>&timeout=<time> { "routing" : "routing_value", "filter" : { "term" : { "filed" : value } } } #以下三种方式同上 POST /<index>/_alias/<alias> PUT /<index>/_aliases/<alias> POST /<index>/_aliases/<alias>
URI参数释意
必填参数,参数类型string;该参数可以由逗号分隔的索引,或者用通配符表达式。值也可为_all,表示作用于集群中的所有索引。
必填参数,参数类型string,索引别名,建议名字使用有意义的单词和数字组成。
master_timeout
可选参数,value值的单位可为d、h、m、s、ms、micros、nanos;等待连接到主节点的时间。如果在超时时间阈值之前没有收到响应,则请求失败并返回错误,默认值为30s。
timeout
可选参数,value值的单位可为d、h、m、s、ms、micros、nanos;请求等待响应的时间。如果在超时时间阈值之前没有收到响应,则请求失败并返回错误,默认值为30s。
请求体
创建一个索引别名的时候,通常路由别名和过滤别名需要指定请求体。
filter
必填参数,将过滤参数绑定到别名,使别名具有特定的查询功能;包含此参数的别名,通常将其称作为过滤别名。
routing
可选string类型参数,自定义路由值用于将操作路由到特定分片的;包含此参数的我们通常将其称作为路由别名。
批量创建别名
批量创建别名 REST 语法如下:
POST /_aliases?master_timeout=<time>&timeout=<time> { "actions" : [ { "<action>" : { "alias" : "index-alias", "<must_param>" : "value", "<option_param>" : "value",... } } ] }
请求体参数释意
actions
必填参数,数组内包含一系列的动作,支持的动作如下
add
为一个索引或多个索引添加一个别名
remove
将别名移除与索引的关联关系
remove_index
删除索引,等效于 delete index API。该动作只对索引别名生效,如果尝试删除索引别名,将会失败。
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.11.Index alias(2) https://developer.aliyun.com/article/1230379