我有一个索引产品是Solr。我需要为每个客户提供定制的产品清单,这样我必须为每个客户排除一些特定的产品。 目前,我将这种排除产品的客户关系存储在SQL数据库中,然后使用术语查询在Solr中对其进行筛选。有没有一种方法可以将这种关系存储在Solr中,这样我就不必每次都从SQL计算排除列表。如何在运行时从Solr过滤大量IDS
的东西非常相似,我们可以在elasticsearch使用https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
可能的方式做,我能想到Solr中做的:
保持在产品指数本身,和过滤的客户名单在那。但是如果我必须重新索引所有文档,这将会非常痛苦。这个列表也可能很大。
我能想到的另一种方式是维护一个独立的核心,用于保存每个客户的文档并排除product_id,并使用{!join}执行加入以过滤掉客户的产品。这是一个可扩展的解决方案吗?
应该是什么Solr中存储这类数据的理想方法。
感谢这里的响应。我想我只会继续使用SQL方法。将过滤使用术语查询的ID。 –