Elasticsearch - реиндекс с нулевым временем простоя без второго реиндекса? - PullRequest
1 голос
/ 17 апреля 2020

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

Я делаю это неправильно? Будут ли в процессе переиндексации обновления, поступающие во время процесса переиндексации, применяться в конце переиндексации?

например,

Если я переиндексирую users-v1 до users-v2 и это занимает 6 часов, многие документы в userv-v1 будут обновлены ко времени окончания реиндекса. Если я синхронизирую пользователя c с Джоном в первый час, а обновление для Джона производится через 4 часа, будет ли это обновление также применено к users-v2? Или мне нужно будет выполнить второй переиндекс после переключения псевдонима, чтобы убедиться, что обновление произведено?

1 Ответ

1 голос
/ 17 апреля 2020

Вы делаете правильную вещь, выполнение второго переиндексации - правильная вещь. Обновления, которые происходят во время первого переиндексации, не будут применяться автоматически.

Надеемся, у вас есть поле lastUpdatedDate или что-то подобное, так что во втором переиндексе вы можете предоставить запрос для переиндексации всех документов, которые были изменены ,

Одна вещь, которую необходимо принять во внимание, - это удаление - по умолчанию второй реиндекс не будет знать о документах, которые были удалены во время первого реиндекса. Для борьбы с этим вы можете либо использовать мягкое удаление (вместо удаления пометить do c как «удаленный»), либо, если это возможно, сделать так, чтобы клиент-клиент регистрировал все идентификаторы удаленных документов, а затем удалял их из целевого индекса .

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