Эластичная и реляционная БД - PullRequest
0 голосов
/ 02 июня 2018

Мне трудно понять, как спроектировать серверную часть поискового приложения, для которого потребуется поиск более 1 млн. Документов, и мне хотелось бы получить несколько советов по следующим вопросам, связанным с использованием индекса на основе lucene и реляционного хранилища:

  1. Должен ли пользовательский интерфейс выполнять поиск только по Elastic и первичному реляционному хранилищу в качестве хорошего хранилища копий?

  2. Если мои данные по своей природе являются реляционными (давайтескажем, у меня есть две таблицы (рецепты и промежуточные ингредиенты), которые основаны на объединениях, как я буду представлять пользователю результаты поиска, когда их данные обыскиваются и представляются только из эластичных элементов?

  3. Когда пользователи вносят изменения в данные, обновленные изменения сохраняются в реляционном хранилище.Буду ли я тогда начать переиндексацию эластичности дельты, чтобы она сразу стала доступна для поиска в приложении?Больше мнения.

Я считаю, что мое непонимание проистекает из незнания взаимодействия эластичного и традиционного БД.Любой совет будет полезен.

1 Ответ

0 голосов
/ 03 июня 2018

Я только начинающий с Elasticsearch, но я реализовал подобный проект.У разных людей могут быть разные мнения по этим вопросам, поэтому я просто собираюсь объяснить, что я сделал для решения аналогичной проблемы:

Вопрос 1: В моем проекте я использую Elasticsearchдля поиска.Моя реляционная БД (MySQL) является основным источником данных.Для этого я синхронизирую ES с MySQL.Этот процесс синхронизации является обычной практикой, и вы можете использовать разные подходы.Лично я выбрал подход , объясненный здесь .Для этой цели существует также проект с открытым исходным кодом go-mysql -asticsearch .

Вопрос 2: Это широкий вопрос, но он является общим для денормализовать данные ES. См. Эту статью о моделировании данных

Вопрос 3: В моем случае я использовал подход синхронизации ES с MySQL, как описано выше.

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