Задать вопрос

Как сделать поиск с 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?
  • Вопрос задан
  • 1143 просмотра
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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. запускать програму демон, которая реиндексирует изменённые продукты.
Ответ написан
Ваш ответ на вопрос

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

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