Реиндекс, добавление новых полей в ElasticSearch не работает ... (PHP-клиент) - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть и индекс вasticsearch, что я хочу добавить новые сопоставления / поля ...

Я использую php-клиентasticsearch.

Мои шаги:

1 - Создать индекс TMP с новым отображением / полями - OK

2 - Переиндексировать из OLD-индекса в индекс TMP - OK (т. Е. Новый индекс имеетновые поля)

3 - переиндексировать индекс TMP из формы в старый - KO (я теряю новое отображение / поля и не знаю почему)

4 - Удалить индекс TMP - OK

5 - Здесь у меня есть индекс OLD (хороший) с отображением OLD (плохой)

Как я могу получить новыйОтображение / поля в исходном указателе?

Спасибо за помощь

1 Ответ

0 голосов
/ 03 июля 2019

На третьем шаге вы не потеряете новое сопоставление, просто у вас его нет с самого начала и переиндексации, не скопируйте сопоставление, необходимое для обновления сопоставления по старому индексу перед переиндексацией.

  1. Создание TMP с отображением
  2. Переиндексирование OLD ---> TMP
  3. Удаление OLD и создание OLD с отображением
  4. Удаление TMP
  5. Здесь у вас будет СТАРЫЙ индекс с новым отображением

ВСЕ ХОРОШО !!!

Если вы посмотрите документацию о reindex https://www.elastic.co/guide/en/elasticsearch/reference/7.2/docs-reindex.html

Есть важное предупреждение:

Reindex не пытается установить целевой индекс.Он не копирует настройки исходного индекса. Вы должны настроить индекс назначения до выполнения действия _reindex , включая настройку отображений , подсчет осколков, реплики и т. Д.

Другое решение - использовать Alias.https://www.elastic.co/guide/en/elasticsearch/reference/7.2/indices-aliases.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...