ES7中的alias和rollover
个人学习笔记,谢绝转载!!!
原文:https://www.cnblogs.com/wshenjin/p/15160383.html
为索引设置别名后,就可以通过这个别名来操作索引,ES会自动将别名映射到实际的索引名中。
alias的基本语法:
给现有index添加alias:
PUT /_alias {
"actions" : [
{
"add" : {
"index" : "students",
"alias" : "students_alias",
"is_write_index" : true
}
}
]
}
创建index并设置alias
PUT /students {
"settings" : {
"number_of_shards":3 ,
"number_of_replicas":1
},
"aliases" : {
"students_alias" : {
"is_write_index" : true
}
}
}
删除alias
POST /_aliases {
"actions" : [
{
"remove" : {
"index" : "context01",
"alias" : "context_alias"
}
},
]
}
关联多个索引:
POST /_aliases {
"actions" : [
{
"add" : {
"index" : "context01",
"alias" : "context_alias"
}
},
{
"add" : {
"index" : "context02",
"alias" : "context_alias",
"is_write_index" : true
}
}
]
}
别名不仅仅可以关联一个索引,它能聚合多个索引
上面的别名context_alias聚合了context01和 context02,这样对context_alias的读操作,会操作context01和 context02。
因为设置了参数is_write_index,所以对context_alias的写操作就是操作context02。但无法操作context01
Rollover
手动Rollover
新建索引01,并设置alias
PUT /context01 {
"settings" : {
"number_of_shards":3 ,
"number_of_replicas":1
},
"aliases" : {
"context_alias" : {
"is_write_index" : true
}
}
}
通过alias, 向索引中写入数据
PUT /context_alias/_doc/0001 {
"body":"hello world"
}
创建新索引02
PUT /context02 {
"settings" : {
"number_of_shards":3 ,
"number_of_replicas":1
}
}
手动Rollover,alias移除context01,指向context02
POST /_aliases {
"actions" : [
{
"remove" : {
"index" : "context01",
"alias" : "context_alias"
}
},
{
"add" : {
"index" : "context02",
"alias" : "context_alias",
"is_write_index" : true
}
}
]
}
自动Rollover
条件是达到5个docs,就rollover到context03
POST /context_alias/_rollover/context03 {
"conditions": {
"max_docs": 5
},
"settings" : {
"index.number_of_shards":3 ,
"index.number_of_replicas":1
}
}'
{
"acknowledged" : true,
"shards_acknowledged" : true,
"old_index" : "context02",
"new_index" : "context03",
"rolled_over" : true,
"dry_run" : false,
"conditions" : {
"[max_docs: 5]" : true
}
}
触发了max_docs达到5的条件rollover成功,自动创建新的索引并将alias指向了新的索引。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能