Elasticsearch之aliases
aliases的作用
索引别名可以指向一个或多个索引,允许我们做如下操作:
- 在运行的集群中可以无缝的从一个索引切换到另一个索引
- 可以给多个索引分组
- 可以与路由搭配使用
准备数据
# 创建索引p1
PUT p1/_doc/1
{
"title":"周一"
}
# 创建索引p2
PUT p2/_doc/1
{
"title":"周二"
}
# 创建索引p3
PUT p3/_doc/1
{
"title":"周三"
}
# 创建索引p4
PUT p4/_doc/1
{
"title":"周四"
}
创建别名
# 创建别名
POST /_aliases
{
"actions": [
{
"add": {
"index": "p1",
"alias": "a1"
}
}
]
}
端点添加别名形式
PUT /{index}/_alias/{name}
* index,要为哪个索引添加别名
* name,别名的名称
实例:
PUT /p3/_alias/a3
查看别名
GET p1,p3/_alias
# result
{
"p1": {
"aliases": {
"a1": {}
}
},
"p3": {
"aliases": {
"a3": {}
}
}
}
删除别名
POST /_aliases
{
"actions": [
{
"remove": {
"index": "p1",
"alias": "a1"
}
}
]
}
或端点删除形式
DELETE /p3/_alias/a3
检测某个索引是否存在
HEAD /_alias/{别名}
HEAD以状态码的形式返回是别名是否存在,200 - OK是存在,404 - Not Found是不存在
HEAD /_alias/a1
# result
404 - Not Found
HEAD /_alias/a3
# result
200 - OK
检索索引
# 查询指定索引
GET /{index}/_alias/{alias}
# 查询索引p1指向以a开头的所有别名
GET p1/_alias/a*
# 查询索引p1所有的别名
GET p1/_alias/*
# 查询所有别名是a开头的索引
GET /_alias/a*
重命名索引
重命名别名是一个简单的remove
操作,然后执行add
操作,无需担心短时间内别名不指向索引,因为这个操作原子性的:
POST /_aliases
{
"actions": [
{
"remove":{
"index": "p1",
"alias": "a1"
}
},
{
"add": {
"index": "p1",
"alias": "a_1"
}
}
]
}
为多个索引指向别名
POST /_aliases
{
"actions":[
{"add":{"index":"p1","alias":"a1"}},
{"add":{"index":"p2","alias":"a1"}}
]
}
也可以使用indices
数组语法在一个操作中为多个索引指向同一个别名
POST /_aliases
{
"actions": [
{"add": {"indices": ["p1", "p2"], "alias": "a2"}}
]
}
也可以为一个索引指向多个别名
POST /_aliases
{
"actions": [
{"add": {"index": "p1", "aliases": ["a21", "a22", "a23"]}}
]
}
分类:
Elasticsearch
标签:
Elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)