Как сделать поиск с Elasticsearch/PostgreSQL?

У меня есть база с продуктами
CREATE TABLE products (
id BIGSERIAL NOT NULL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
price BIGINT NOT NULL
);


Как сделать так чтобы при добавлении/изменении в PostgreSQL данные автоматически обновлялись в Elasticsearch?
  • Вопрос задан
  • 1139 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Самый простой путь - отправлять из кода данные в Elasticsearch и PostgreSQL параллельно. А можно нагородить систему из триггера, механизма уведомлений и обработчика этих уведомлений, который будет отправлять данные в в Elasticsearch. Но это не будет просто.
Ответ написан
Комментировать
al_gon
@al_gon
реиндексировать только изменённые!

  1. в PostgreSQL в products добавить столбцы last_update (timestamp) и indexed (1/0)
  2. сохранять в Elasticsearch ID продукта обязательно понему и будет проиходить выборка.
  3. сохранять время последней индексации, глобальное знацехние для всего индекса.

  4. запускать програму демон, которая реиндексирует изменённые продукты.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы