@Nolan81
программист

Какую стратегию синхронизации данных в базе и elasticsearch вы делаете?

Привет.

Хотел узнать какую стратегию поддержания актуальных данных в elastic-e вы предпочитаете?

вариант 1)
- создал индекс один раз
- при любом CRUD над данными в БД , шлется соответствующий запрос в эластик

Минус тут, что придется весь этот код навешивать, плюс вдруг не дойдет запрос, тогда рассинхрон

вариант 2)
- на уровне базы сечь что было проиндексировано, а что требует обновление в индексе - timestamp-ом например
- а уже по крону, вот эти "статьи", требующие актуализации, обновлять. Delete правда тут выпадает, если реально из базы удалять, а не soft delete , когда просто помечается удаленным

вариант 3)
- использую алиас для индекса, и поиск через него
- по крону , например раз в сутки: создаю новый индекс, наполняю его всеми данными (через _bulk api), когда это готово, переключаю алиас на него, а старый индекс удаляю

- плюсы тут что просто это сделать, без кучи кода, не надо следить за чем то, использовать crud api, но актуальность для измененных данных в течении дня не соблюдается.

p.s. возьмем не какой то проект с миллиардами данных, кто знает что там за подводные камни, а попроще - например на новостном сайте или магазине , где не сильно много "статей"/товаров
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы