Elasticsearch предоставляет механизм для создания псевдонимов (aliases) для index
. Суть в том, что вы задаёте псевдоним (alias) для index
и уже в запросах для доступа к этому index
используете именно его alias, а не имя index
.
Рассмотрим одну из самых частых применений псевдонимов. Допустим у вас есть index
, название которого постоянно меняется, например, вы добавляете к названию версию вашего приложения my-index-v1
. И соответственно при каждом новом релизе имя вашего index
меняется. И вам либо вашему приложению, которое обращается к этому index
постоянно надо менять имя index
при запросе. Естественно это глупая задача и для её решения используется как раз-таки псевдонимы (aliases).
При использовании псевдонимов (aliases) при создании нового index
вы назначаете ему тот же alias что и был у старого index
и удаляете этот alias у старого index
. Соответственно ваше приложение всё также обращается к старому alias и получает данные с нового index
.
Вы также можете назначать один и тот же alias множествам index
если этого требует ситуация.
В такой реализации для того чтобы обратиться к новому index
вам надо менять запрос.
GET my-index-v2/_search
В такой реализации вам нужно добавить alias к новому index (my-index-v2)
и удалить у старого index (my-index-v1)
. Соответственно в самом запросе всё остаётся также, как и было.
GET my-index-alias/_search
Создание alias
Для того, чтобы создать alias или удалить его используется _aliases.
Пример создания:
POST _aliases
{
"actions": [
{
"add": {
"index": "my-index-v1",
"alias": "my-index-alias"
}
}
]
}
Пример создания и удаления:
POST _aliases
{
"actions": [
{
"add": {
"index": "my-index-v2",
"alias": "my-index-alias"
}
},
{
"remove": {
"index": "my-index-v1",
"alias": "my-index-alias"
}
}
]
}
Комментарии