我们有制造商零件的Solr文档,其中每个零件都可以从中获得 100个供应商。这些供应商存储在每个Mfg零件文档中 在一个多领域。
客户按部分标题和关键字搜索我们的部分 描述,每个客户都有一个唯一的列表,列出了不允许的供应商 查看。例如:
solr docs:
doc_id = 1, mfg_part = abc, suppliers = s1, s2, s3, s4, s5, s6, s7
doc_id = 2, mfg_part = def, suppliers = s4, s5, s6, s7
doc_id = 3, mfg_part = ghi, suppliers = s4
doc_id = 4, mfg_part = jkl, suppliers = s1, s2, s3, s4
doc_id = 5, mfg_part = mno, suppliers = s1, s2, s3, s5
customer A: exclude suppliers: s4, s5, s6, s7
customer B: exclude suppliers: s1, s2, s3, s4
when customer A searches, documents 2 & 3 should not be returned in any
result set
when customer B searches, documents 3 & 4 should not be returned in any
result set
我们有一个想法是重新构建我们的文档,以便每个文档都有一个 供应商mfg部分,而不是每个mfg部分,但结果将是一个索引 大小的3000倍!我们的许多制造零件都有1000个或更多的供应商。 目前我们将排除列表推送到过滤器查询中,但是它已经到了 非常
我们看过Solr"加入"在索尔4,但这是一个生产 网站每周产生数百万美元,我们负担不起使用alpha 或beta版软件。
最后,我们目前在过滤器查询中使用了包含供应商的列表,这可以使用,但由于包含列表位于1000,因此它非常慢。我们宁愿使用排除列表,但无法弄清楚要使用的查询或架构。
任何想法,任何人?
提前谢谢 克里斯