Эластичный поиск

Elasticsearch Reindex на месте

Elasticsearch Reindex на месте
Индексирование Elasticsearch - важная функция, которая позволяет движку работать быстро и точно.

Однако, как вы знаете, как только данные отображаются в индексе, их нельзя изменить. Для этого вам нужно будет переиндексировать данные с необходимыми вам изменениями. Этот процесс может привести к простою, что не очень хорошая практика, особенно для услуги, которая уже находится в обращении.

Чтобы обойти это, мы можем использовать псевдонимы индексов, которые позволяют нам легко переключаться между индексами.

Как создать индекс?

Первый шаг - убедиться, что у вас есть существующий индекс, данные которого вы хотите обновить.

Для этого урока у нас будут старый и новый указатели, которые будут служить их именами.

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 " : "использовать меня" ]'

После завершения вы можете удалить старый индекс, и приложения будут использовать новый индекс (из-за псевдонима) без простоев.

Заключение

Освоив концепции, обсуждаемые в этом руководстве, вы сможете переиндексировать данные из старого индекса в новый на месте.

Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...