Как верно использовать elasticsearch для запуска поиска на сайте с его помощью?
Добрый!
Вопрос, есть задача реализовать поиск по сущностям mySQl в разрезе разных таблиц. Я поднял эластик серч, это отдельный сервис который строит индексы, выяснил что нужно jdbc коннектор для связи с mysql
А вопрос состоит в том.
С точки зрения программирования какая должна быть последовательность действий для реалзиации поиска на сайте с помощью эластик серча.
Мой примерный план
Создать все возможные индексы, или один индекс?
Как часто обновляется индекс, нужно ли его обновлять вручную если он он подключен через jdbc
Если нужно запускать обновление индекса как часто это надо делать?
В случае если данные добавляются в базу, как быстро отработает обновление индекса.
На бэкенде я должен делать запросы к эластик серчу и рисовать форму выдачи поиска?
Собственно был бы классным ответом ответ.
1) Делают это
2) Потом это
3) Теперь это
4) Тепреь на фронте это.
Говорят что jdbc для синхронизации данных в стадии deprecated уже несколько лет) Elasticsearch уже давно не парится о том как и откуда попадают данные в поиск, это не их проблема.
Обычно это делается ручками, пишешь в базу - пиши и в эластик.
Порядок действий простой:
1) читаешь документацию и остальные вопросы отпадают
1) При добавлении/обновлении/удалении данных на бэкенде делаешь тоже самое на эластике. Всего 2 метода index для создания и обновления и delete для удаления.
Обычно для такого в системе есть события, на которые можно повесить обработчик, который будет работать с эластиком.
2) Потом делаешь запросы к эластику с фронт сервера/бек сервера/мобильного приложения и ещё от куда угодно.