У меня есть индекс для продуктов - Solr. Мне нужно предоставить индивидуальный список продуктов для каждого покупателя, так что я должен исключить некоторые конкретные продукты для каждого покупателя. В настоящее время я сохраняю эти отношения клиентов и исключенных продуктов в базе данных SQL, а затем фильтрую их в Solr с помощью запроса условий. Есть ли способ сохранить эти отношения в самом Solr, чтобы мне не приходилось каждый раз вычислять список исключений сначала из SQL.
Что-то очень похожее на то, что мы можем сделать в elasticsearch, используя https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
Возможные способы, которые я мог бы придумать в Solr:
Ведение списка клиентов в самом индексе продуктов и фильтрация по нему. Но это будет действительно больно, если мне придется переиндексировать все документы. Также список может быть огромным.
Другой способ, который я мог придумать, - это поддерживать отдельное ядро для хранения документов для каждого клиента и исключить product_id, а также выполнить соединение с помощью {! Join} для фильтрации продуктов для клиента. Это масштабируемое решение.
Каким должен быть идеальный подход для хранения таких данных в Solr.