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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
JavaScript 前端开发 索引
js的循环中foreach、for in和for of的区别
js的循环中foreach、for in和for of的区别
448 0
|
12月前
|
消息中间件 存储 Java
SpringCloud基础9——服务异步通信-高级篇
消息可靠性、死信交换机、惰性队列、MQ集群
SpringCloud基础9——服务异步通信-高级篇
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
580 0
|
Kubernetes API Perl
在K8S中,如何让Pod运行一次?如何解决一次性任务?
在K8S中,如何让Pod运行一次?如何解决一次性任务?
|
存储 安全 算法
密码学原理及其在网络安全中的应用
【7月更文挑战第27天】密码学作为保护信息安全的基石,在网络安全中发挥着不可或缺的作用。通过加密、解密、身份验证、数字签名和哈希函数等技术手段,密码学确保了数据的机密性、完整性和认证性。随着计算能力的不断提升和密码分析技术的不断进步,密码学需要不断创新和发展,以应对新的安全挑战。未来,随着量子计算技术的兴起和后量子密码学的研究深入,密码学将在网络安全领域发挥更加重要的作用。
|
存储 缓存 NoSQL
深入理解分布式缓存在现代后端系统中的应用与挑战
随着互联网技术的飞速发展,分布式缓存已成为提升后端系统性能的关键技术之一。本文将从数据导向和科学严谨的角度出发,探讨分布式缓存技术的原理、应用场景以及面临的主要挑战。通过对具体案例的分析和数据统计,我们旨在为读者提供一个全面而深入的理解框架,帮助开发者更好地设计和优化后端系统。 【7月更文挑战第20天】
226 0
|
API 数据格式 UED
BizIllegalException 和BadRequestException的适用场景
在软件开发过程中,异常处理是一个重要的方面,能够提高系统的稳定性和可靠性。BizIllegalException(业务非法异常)和BadRequestException(错误的请求异常)是两种常见的异常类型,它们在不同的场景下使用。本文将详细介绍这两种异常的适用场景。
658 0
|
JSON API 数据格式
如何获得淘宝/天猫商品类目 API 返回值说明
在淘宝开放平台(Taobao Open Platform)或天猫开放平台(Tmall Open Platform)中创建一个新的应用,并为该应用配置必要的权限。
|
存储 数据采集 边缘计算
Link Edge 介绍| 学习笔记
快速学习 Link Edge 介绍
1025 0
|
安全 网络安全
安全运营之团队人员组织建议
安全运营是一个持续的过程,需要不断地评估风险、监测威胁、改进措施和更新策略,以确保组织的安全性和可靠性。由人员、数据、平台(工具)、流程的共同组合构成安全运营体系。
284 0