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"
}
}
]
}


Комментарии