Предположим, что я хочу использовать elasticsearch для реализации общего поиска на веб-сайте. Ожидается, что в верхней строке поиска будут найдены ресурсы всех видов по всему сайту. Документы (загруженные/индексированные через tika), но также такие вещи, как клиенты, учетные записи, другие люди и т.д.
По соображениям архитектуры большинство материалов без документов (клиенты, учетные записи) будут существовать в реляционной базе данных.
При реализации этого поиска параметр # 1 должен был бы создавать версии документов всего, а затем просто использовать elasticsearch для запуска всех аспектов поиска, не полагаясь вовсе не на реляционную базу данных для поиска различных типов объектов.
Вариант № 2 должен был бы использовать elasticsearch только для индексации документов, что означало бы для общей функции поиска по сайту, вам придется обрабатывать несколько запросов для нескольких систем, а затем агрегировать результаты перед их возвратом.
Вариант №1 кажется намного превосходен, но недостатком является то, что он требует, чтобы эластичный поиск по существу имел копию большого количества вещей в производственной реляционной базе данных, плюс, чтобы эти копии были свежими, поскольку все меняется.
Какой лучший вариант для хранения этих магазинов в синхронизации, и правильно ли я полагаю, что для общего поиска опция № 1 превосходит? Есть ли вариант № 3?