Я собираюсь использовать MsSqlServer и Elasti c вместе. MS SQL - это основная база данных, а Elasti c - это база данных поиска. Моя структура базы данных выглядит так:
- Пользователь (id, name, companyId ) - 120 тыс. Записей
- Компания (id, имя) - 10 тыс. Записей
- Company_matrix (parent_company_id, child_company_Id) - 20k записей
- Company_share_data (company_id, share_to_company_Id) - 50k записей
- Product (id, name, allow_to_be_shared * 1015 1016 * companyId ) - 1 млн записей
Я создам индекс elasti c для таблицы продуктов и компаний, чтобы повысить скорость поиска. Пользователь, вошедший в систему с идентификатором companyId = X, может видеть все продукты с идентификатором companyid = X или все продукты материнских компаний, определенных в Company_matrix , или все продукты, используемые другими компаниями из Company_share_data но allow_to_be_shared не равно false.
Этот запрос очень простой на сервере SQL, но проблема с отсутствием sql db, как у elasticsearch. Есть ли способ выполнить поиск в списке «доступных идентификаторов продуктов» в sqlserver, затем передать его в elasticsearch и смешать их с условиями поиска пользователя? Или что-нибудь получше?
Спасибо