通过查询和许多值排除排除

时间:2012-08-20 03:07:25

标签: solr

我们有制造商零件的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,因此它非常慢。我们宁愿使用排除列表,但无法弄清楚要使用的查询或架构。

任何想法,任何人?

提前谢谢 克里斯

1 个答案:

答案 0 :(得分:0)

对于Solr授权,人们通常使用ManifoldCF

看看here