Однако, как вы знаете, как только данные отображаются в индексе, их нельзя изменить. Для этого вам нужно будет переиндексировать данные с необходимыми вам изменениями. Этот процесс может привести к простою, что не очень хорошая практика, особенно для услуги, которая уже находится в обращении.
Чтобы обойти это, мы можем использовать псевдонимы индексов, которые позволяют нам легко переключаться между индексами.
Как создать индекс?
Первый шаг - убедиться, что у вас есть существующий индекс, данные которого вы хотите обновить.
Для этого урока у нас будут старый и новый указатели, которые будут служить их именами.
PUT / old_index /"настройки":
"number_of_shards": 1
,
"псевдонимы":
"использовать меня":
,
«Сопоставления»:
"характеристики":
"название":
"тип": "текст"
,
"я бы":
"тип": "целое число"
,
"оплаченный":
"тип": "логическое"
Для пользователей cURL используйте добавленную команду:
curl -XPUT "http: // localhost: 9200 / old_index /" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 1, "aliases": "use_me" : , "Сопоставления": "свойства": "имя": "тип": "текст", "идентификатор": "тип": "целое число", "платный": "тип ":" логическое " 'Затем создайте новый индекс, который мы собираемся использовать. Скопируйте все настройки и сопоставления из старого индекса как:
PUT / new_index"настройки":
"number_of_shards": 1
,
"псевдонимы":
"использовать меня":
,
«Сопоставления»:
"характеристики":
"название":
"тип": "текст"
,
"я бы":
"тип": "целое число"
,
"оплаченный":
"тип": "объект"
Вот команда cURL:
curl -XPUT "http: // localhost: 9200 / new_index" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 1, "aliases": "use_me": , "Сопоставления": "свойства": "имя": "тип": "текст", "идентификатор": "тип": "целое число", "платный": "тип" : "объект" 'Имея настройки и сопоставления в новом индексе, используйте reindex api для копирования данных из старого индекса в новый:
POST _reindex"источник":
"индекс": "старый_индекс"
,
"dest":
"индекс": "новый_индекс"
Вот команда cURL:
curl -XPOST "http: / localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": "old_index", "dest": "index" : "новый_индекс" 'Теперь скопируйте псевдоним старого индекса в новый, используя _alias api как:
POST / _aliases"действия": [
"add": "index": "new_index", "alias": "use_me"
]
Вот команда cURL:
curl -XPOST "http: // localhost: 9200 / _aliases" -H 'Content-Type: application / json' -d '"actions": ["add": "index": "new_index", "alias " : "использовать меня" ]'После завершения вы можете удалить старый индекс, и приложения будут использовать новый индекс (из-за псевдонима) без простоев.
Заключение
Освоив концепции, обсуждаемые в этом руководстве, вы сможете переиндексировать данные из старого индекса в новый на месте.