簡介
索引別名就是給一個或幾個索引重新定義一個名字,操作索引別名時會轉化爲對真實索引的操作,定義索引別名時不可以與真實的索引同名
通俗解釋:索引別名類似:windows的快捷方式,linux的軟鏈接,mysql的視圖
作用以及使用場景
索引別名允許我們執行以下操作:
- 實現在正在運行的集羣上的一個索引和另一個索引之間透明切換
- 對多個索引進行分組組合(例如:過去3個月的索引logs2019010,logs201911, logs_201912組合起來,索引別名爲logs)
- 在索引中的文檔子集上創建“視圖”(結合業務場景,會提升檢索效率)
前提:Elasitcsearch創建索引後,索引名不允許修改。很多業務場景下單一索引可能無法滿足要求
- 場景1:PB級別增量數據,藉助rollover api實現,由基於日期的n個索引組成,對外提供服務使用別名會很便捷
- 場景2:線上提供服務的某個索引出了問題,使用索引別名實現無停機索引遷移
增加別名
給單個索引增加別名
PUT new_index
POST /_aliases
{
"actions": [
{
"add": {
"index": "new_index",
"alias": "new_index_alias"
}
}
]
}
# 查看
GET new_index/_alias
# 響應
{
"new_index" : {
"aliases" : {
"new_index_alias" : { }
}
}
}
給多個索引增加別名
給多個索引增加相同的別名
方式一
PUT new_index
PUT new_index_2
POST /_aliases
{
"actions": [
{
"add": {
"index": "new_index",
"alias": "new_index_alias"
}
},
{
"add": {
"index": "new_index_2",
"alias": "new_index_alias"
}
}
]
}
方式二
POST /_aliases
{
"actions": [
{
"add": {
"indices": [
"new_index",
"new_index_2"
],
"alias": "new_index_alias"
}
}
]
}
給多個索引增加不同的別名
POST /_aliases
{
"actions": [
{
"add": {
"index": "new_index",
"alias": "new_index_alias"
}
},
{
"add": {
"index": "new_index_2",
"alias": "new_index_alias_2"
}
}
]
}
使用通配符增加別名
POST /_aliases
{
"actions": [
{
"add": {
"index": "new_index*",
"alias": "new_index_alias22"
}
}
]
}
刪除別名
POST /_aliases
{
"actions": [
{
"remove": {
"index": "new_index",
"alias": "new_index_alias"
}
},
{
"remove": {
"index": "new_index_2",
"alias": "new_index_alias"
}
}
]
}
修改別名
別名的修改,是通過同時執行刪除remove和新增add操作來實現的,該操作中的兩個動作都是原子性的
POST /_aliases
{
"actions": [
{
"remove": {
"index": "new_index",
"alias": "new_index_alias1"
}
},
{
"add": {
"index": "new_index",
"alias": "new_index_alias"
}
}
]
}
查看別名
查看單個索引別名
GET new_index/_alias
# 響應
{
"new_index" : {
"aliases" : {
"new_index_alias" : { }
}
}
}
查看多個索引別名
GET new_index,new_index_2/_alias
# 響應
{
"new_index_2" : {
"aliases" : {
"new_index_alias1" : { },
"new_index_alias22" : { },
"new_index_alias_2" : { }
}
},
"new_index" : {
"aliases" : {
"new_index_alias" : { }
}
}
}
使用通配符查看索引
GET new_index*/_alias
# 響應
{
"new_index_2" : {
"aliases" : {
"new_index_alias1" : { },
"new_index_alias22" : { },
"new_index_alias_2" : { }
}
},
"new_index" : {
"aliases" : {
"new_index_alias" : { }
}
}
}
判斷別名是否存在
HEAD new_index/_alias/new_index_alias
# 存在時響應
200 - OK
# 不存在時響應
404 - Not Found