Индекс Elasticsearch является «моментальным снимком» после завершения переиндексации

#java #elasticsearch #reindex

#java #elasticsearch #переиндексация

Вопрос:

Я использую Elasticsearch 5.5.1 и Jest API для подключения. Я делаю «переиндексацию» из исходного индекса в новый индекс, используя действие переиндексации с waitForCompletion = false. который извлекает идентификатор задачи. Я проверяю идентификатор задачи, после завершения я попытался поменять псевдоним — удалить исходный индекс и присвоить его имя в качестве псевдонима новому индексу. Однако я получаю сообщение об ошибке: невозможно удалить индексы, которые снимаются моментально: [[my_source_index/_adsOlaQxy018Nl3FTMmQ]]. Повторите попытку после завершения моментального снимка или отмените текущий моментальный снимок «. }

Мне интересно, почему исходный индекс по-прежнему является моментальным снимком, когда задача переиндексации завершена? и я также вижу, что все документы существуют в новом индексе. есть идеи, в чем проблема?

Спасибо

Ответ №1:

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

Другими словами, не запускайте процесс переиндексации, если вы знаете, что он каким-то образом будет выполняться одновременно с вашим процессом моментального снимка… или лучше сделайте свой процесс переиндексации более умным и определите, выполняется ли процесс моментальной съемки, и если да, подождите, пока это не будет сделано, прежде чем удалять исходный индекс.

Комментарии:

1. есть ли какой-либо способ проверить, выполняется ли моментальный снимок с помощью Jest Api?

2. Какую версию ES вы используете?

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

4. Да, вы, вероятно, можете запросить статус снимков с помощью этого