带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(3)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(3)

将一个别名关联多个索引


test1添加别名alias1test2添加别名alias2,代码块中的两种方式等效。为索引绑定多个别名的语法与之类似,只需将alias替换aliases数组。


POST /_aliases
{
  "actions" : [
    { "add" : { "index" : "test1", "alias" : "alias1" } },
    { "add" : { "index" : "test2", "alias" : "alias1" } }
  ]
}
# 等效于上面的方式
POST /_aliases
{
  "actions" : [
    { "add" : { "indices" : ["test1", "test2"], "alias" : "alias1" } }
  ]
}

除了以上两种方式外,我们还可以使用glob模式,将别名与多个索引相关联绑定,这种方式只会对集群中已存在的索引生效,不会对之后创建的索引生效。


POST /_aliases
{
  "actions" : [
    { "add" : { "index" : "test*", "alias" : "all_test_indices" } }
  ]
}

如果错误的创建了一个索引,同样可以通过别名的方式来解决。


例如:错误的创建了一个名称为test的索引,而实际需要的索引名称为test_2,但是已经有数据往索引里面写入数据了;为了解决这个问题,首先创建正确的索引名称,然后用一个原子操作,将test别名绑定test_2,同时删除索引test

 

集群状态中不会发生别名绑定不到索引的情况;但由于索引和搜索涉及多个步骤,正在运行或排队的请求,可能会由于临时不存在索引而失败。


# 创建索引test
PUT test   
#  创建索引test_2 
PUT test_2   
POST /_aliases
{
  "actions" : [
    { "add":  { "index": "test_2", "alias": "test" } },
    { "remove_index": { "index": "test" } }  
  ]
}

新建索引时绑定别名

 

上述给索引绑定别名,均需要提前创建索引;若需要别名能给对新索引生效,可以在创建索引时进行指定。


PUT test1
{
  "aliases" : {
      "alias1" : { },
      "alias2" : { }
    },
    "mappings" : { },
    "settings" : {}
}


除此之外,还可以在索引模板里面进行指定

 

如下代码块创建了一个模版名称为testorder权重为0索引模板,之后只要是以test开头的索引都会绑定别名alias1alias2


PUT _template/test
{
   "order" : 0,
   "index_patterns" : [
      "test*"
    ],
     "aliases" : {
      "alias1" : { },
      "alias2" : { }
    },
     "mappings" : { },
    "settings" : {}
}

别名查看

 

Get index alias

 

别名的查看方式有如下几种方式


GET /_alias
GET /_alias/<alias>
GET /<index>/_alias/<alias>?allow_no_indices=true&expand_wildcards=all&local=false&ignore_unavailable=false


路径参数

 


 

可选参数,参数类型为string参数支持单个索引或者以逗号分隔的多个索引再或者通配符表达式形式

 


 

可选参数,参数类型为string参数支持单个别名或者以逗号分隔的多个别名再或者通配符表达式形式

 

查询参数

 

allow_no_indices

 

可选参数,参数类型为Boolean,默认值为true;如果设置为false,任何通配符表达式、索引别名或_all值只针对丢失或关闭的索引,则请求将返回一个错误。即使请求以其他开放索引为目标,此行为也适用。

 

expand_wildcards

 

可选参数,参数类型为string该参数主要用于控制哪些特性的索引的别名可以被查看,参数可取如下几种类型的值:

 

l all

l 匹配所有数据流或索引,包括隐藏的数据流或索引。默认值为 all。

 

l open

l 匹配索引状态为open,非hidden的索引,以及非hidden的数据流。

 

l closed

l 匹配索引状态为closed,非hidden的索引,以及非hidden的数据流(数据流不能够被关闭)。

 

l hidden

l 匹配隐藏的数据流和索引,且索引必须是打开或者关闭状态。

 

l none

l 不接受通配符表达式,即参数中不能包含通配符表达式

 

ignore_unavailable

 

可选参数,参数类型Boolean,默认值为false。如果请求路径中有索引不存在,则请求将会发生错误。

 

local

 

可选参数,参数类型Boolean,默认值为false。如果设置为true,则仅仅从本地节点获取集群元信息(包括索引别名信息);如果设置为true,则从master节点获取master的信息最权威,可以避免因为网络等问题,造成的元信息下发不及时,造成的获取元信息有误,但也会增加网络开销。

 

_cat API

 

除了通过Get index alias API进行查看索引别名,还可以_cat API进行索引别名查看。


GET _cat/aliases
GET _cat/aliases/<alias>


别名删除

 

Delete index alias

 

RESTful API 语法如下


DELETE /<index>/_alias/<alias>?master_timeout=<time>&timeout=<time>
DELETE /<index>/_aliases/<alias>?master_timeout=<time>&timeout=<time>



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.11.Index alias(4) https://developer.aliyun.com/article/1230375

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
12月前
|
API 网络架构 索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(1)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(1)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)
|
12月前
|
存储 API 索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(6)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(6)
|
12月前
|
JSON API 数据格式
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(2)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(2)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(4)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(4)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(5)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(5)
|
12月前
|
JSON 安全 API
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(2)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(2)
|
12月前
|
API 索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)
|
12月前
|
JSON 数据格式 索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(6)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(6)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(1)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(1)