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

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


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


JSON 体内支持的参数包括必填参数和可选参数。

 

详情如下:

 

必填参数:

 

index

 

参数类型string,支持通配符。如果indices没有指定,则该参数必须指定。


注意:不能向索引别名添加数据流。

 

indices

 

参数类型string数组,该数组内的索引将被执行相应的动作。如果index没有指定,则该参数必须指定。

注意事项与index参数相同。

 

alias

 

参数类型string,为以逗号分隔或者通配符表示的索引,add,remove,delete别名。如果

aliases没有指定,则该参数必须指定。

 

aliases

 

参数类型string array,需要进行add,remove,delete的索引别名组。如果alias没有指定,则该参数必须指定。

 

可选参数:

 

filter

 

query object查询对象体,绑定了过滤查询的别名。如果指定,使用别名进行空查询,将只返回满足过滤条件的文档。

 

is_hidden

 

参数类型bool值,默认值为false;如果设置为true,使用通配符表达式别名进行搜索排除,该别名关联的数据将查询不到;除非在请求中使用expand_wildcards参数重写。对于共享同一个别名的所有索引,必须将此属性设置为相同的值。


must_exist

 

参数类型bool值,默认值为false,如果设置为ture,移除别名时,该别名必须存在。

 

is_write_index

 

参数类型bool值,默认值为false;如果设置为true,则可以直接使用该别名对关联的索引进行数据写入或者配置修改等操作;若别名绑定多个索引,则只能存在一个is_write_index值为

true的绑定。注意:在同一个索引is_hidden和is_write_index不能同时设置为true;当别名只绑定一个索引时无需现实设定该值为true,该别名具有写权限,但是当别名再次绑定另外一个索引,则别名的写权限取消,除非现实指定is_write_index的值为true。

 

routing

 

参数类型string,自定义值作为路由计算值,将操作路由到对应的分片上。

 

index_routing

 

参数类型string,自定义值作为路由计算值,将写入操作路由到对应的分片上。

 

search_routing

 

参数类型string,自定义值作为路由计算值,将查询操作路由到对应的分片上。

 

别名创建与修改示例

 

假设已经存在表user1和user2,为他们绑定别名,示例子如下:


#为 users1 表创建 index-alias-name1 别名
PUT /users1/_alias/index-alias-name1
#为 users1,users2 表创建 index-alias-name2 别名
PUT /users1,users2/_alias/index-alias-name2
#为 users 开头的索引创建 index-alias-name3别名
PUT /users*/_alias/index-alias-name3
#为 users1 索引添加具有路由和过滤功能的别名 routing-filter-index-alias
PUT users1/_alias/routing-filter-index-alias
{
  "routing" : "12",
  "filter" : {
    "term" : {
      "user_id" : 12
    }
  }
}
#为 users1 索引添加路由别名routing-index-alias,路由计算值为12
PUT users1/_alias/routing-index-alias
{
  "routing" : "12"
}
#为 users1 索引添加过滤别名filter-index-alias,过滤 user_id 为12
PUT users1/_alias/filter-index-alias
{
  "filter" : {
    "term" : {
      "user_id" : 12
    }
  }
}

别名创建成功之后,如果别名与索引的关系,为一个别名只对应一个索引,或者有一个绑定关系的 is_write_index (后文会介绍)值为 true ;那么我们可以通过别名往索引写如数据。


#通过别名,写入数据
PUT index-alias-name1/_bulk?refresh=true
{"index":{}}
{"user_id":"tom123456-user1"}
#通过路由别名,写入数据
PUT routing-index-alias/_bulk?refresh=true
{"index":{}}
{"user_id":"kimchy123456-routing"}
#通过索引,写入数据
PUT users2/_bulk?refresh=true
{"index":{}}
{"user_id":"kimchy123456-user2"}
{"index":{}}
{"user_id":"12"}

插入数据后可以通过别名或者索引查询:


#以下三条查询语句的结果是等价的,返回2条数据
GET index-alias-name1/_search
GET users1/_search
GET routing-index-alias/_search
#以下三条查询语句的结果是等价的(如果没有其他 users 开头的索引),返回四条数据
GET users1,users2/_search
GET users*/_search
GET index-alias-name2/_search
#查询 user2 的索引,返回2条数据
GET users2/_search
#返回值为空,因为索引 users1 插入的文档没有 user_id 值为2的
GET filter-index-alias/_search
# 返回值为一条,因为索引 users2 有一条 user_id 值为2的文档
GET index-alias-name3/_search

批量创建索引别名示例

 

批量创建索引别名,即使用POST /_aliases中定义多个action。为test1 和test2索引绑定一个名称为alias1的别名。

POST /_aliases
{
  "actions" : [
    { "add" : { "index" : "test1", "alias" : "alias1" } }
    { "add" : { "index" : "test2", "alias" : "alias1" } }
  ]
}

重命名别名

 

如果我们需要对一个索引进行别名替换,只需要在同一个 API 中简单的先remove掉旧别名,然后绑定新的别名即可;该操作为原子型操作,无需担心别名在短时间内不指向索引


POST /_aliases
{
  "actions" : [
    { "remove" : { "index" : "test1", "alias" : "alias1" } },
    { "add" : { "index" : "test1", "alias" : "alias2" } }
  ]
}



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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
3月前
|
人工智能 前端开发 小程序
从知识库问答到企业系统集成:智能体接入客户域名的工程化实践
如何让用户通过客户自己的域名访问智能体?如何让智能体读取或操作客户内部系统?
380 3
|
3月前
|
Arthas Java 测试技术
Arthas Profiler 火焰图实战:CPU 热点在哪一目了然
线上 CPU 飙高却不知道瓶颈在哪?一张 Arthas Profiler 火焰图采样定位,横宽即热点,一眼锁定最该优化的函数
Arthas Profiler 火焰图实战:CPU 热点在哪一目了然
|
2月前
|
人工智能 安全 算法
Token平台安全合规怎么看:密钥、数据与资质指南
本文为2026年面向企业及个人开发者的Token平台安全合规指南,聚焦密钥管理、数据流向与资质审查三大核心维度,强调“平台能力定事故下限,自身习惯控事故概率”。内容涵盖Key隔离轮换、HTTPS与日志脱敏要求、ICP/等保/算法备案核查要点,提供可落地的自查清单与代码实践,助开发者筑牢AI调用安全防线。(239字)
358 0
|
3月前
|
Ubuntu Linux 数据安全/隐私保护
5 分钟共享打印机:用 Docker 一键部署 CUPS
家庭/小团队共享打印机太麻烦?本文教你5分钟用Docker一键部署CUPS打印服务:拉取`anujdatar/cups`,一条命令启动容器,Web界面添加HP Smart Tank等IPP打印机,局域网内所有设备(Win/mac/Linux/手机)即可无线打印,配置持久化、操作零门槛!
1197 0
5 分钟共享打印机:用 Docker 一键部署 CUPS
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
GEO优化避坑指南:从业者必知的误区与对策
从搜索排名到生成式引用,内容价值的坐标系正在重置。本文不仅讲清坑在哪里,更给出能直接落地的改写示范、自审清单与监测步骤。
276 0
|
3月前
|
人工智能 自然语言处理 安全
2026企业级Agent平台深度解析
2026年是企业级AI智能体规模化落地关键年。瓴羊AgentOne平台以“大模型×好数据×强场景”为核心,提供低代码编排、全栈安全与生态集成能力,内置20+开箱即用Agent,覆盖营销、客服、分析等全链路场景,助力企业高效构建智能经营体系。(239字)
|
4月前
|
SQL 监控 关系型数据库
MySQL连接数管理最佳实践:从Too many connections应急到长期治理
本文详解MySQL“Too many connections”故障的应急排查与根治方案:30秒快速评估、杀Sleep连接止血、动态调参救急;深入分析慢查询、连接泄漏、短连接冲击、配置过小四大根因;附诊断脚本、监控告警规则及连接池最佳实践,助你从容应对生产危机。
|
4月前
|
数据采集 边缘计算 人工智能
设备数据采集方案深度对比:边缘计算网关采集vs软件采集,工厂到底该怎么选?
本文深度对比注塑、机加工工厂数据采集的两大主流方案:边缘计算网关(如智象九维VBOX)与工控机+软件方案。基于500+企业实战,从采集能力、适配性、稳定性、安全等11维度分析,指出网关方案在实时性、安全性、运维成本及AI扩展性上显著更优,是中大型工厂数字化转型的首选基础架构
367 0
|
6月前
|
存储 SQL 关系型数据库
游标从入门到实战:MySQL逐行处理的4步法与5大避坑指南!
数据库小学妹带你轻松掌握MySQL游标!游标是逐行处理结果集的“智能指针”,适用于个性化积分计算、字段拆分、批量发信等集合操作无法胜任的场景。本文详解游标四步法(声明/打开/提取/关闭)、实战案例及四大避坑指南,强调“能不用则不用”——性能优先,集合操作为首选!
|
7月前
|
人工智能 自然语言处理 搜索推荐
AI技术在英语学习中的应用
AI已升级为英语学习的“智能导师”,深度融入听说读写全过程:口语陪练、发音精析、写作教练、个性教材、人机协同——打破资源壁垒,实现千人千面的高效学习。(239字)

热门文章

最新文章