【发布时间】:2012-08-20 23:36:38
【问题描述】:
我们有制造商零件的 Solr 文档,每个零件都可以从 100 家供应商。这些供应商存储在每个制造零件文档中 在多领域中。
客户根据零件标题和关键字搜索我们的零件 描述,其中每个客户都有一个唯一的列表,其中列出了他们不允许的供应商 查看。例如:
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
我们的一个想法是重组我们的文档,以便每个文档都有一个文档 供应商制造零件,而不是每个制造零件,但结果将是一个索引 3000倍的大小!!!我们的许多制造零件有 1000 家或更多供应商。 目前我们将排除列表推入过滤器查询,但它正在 保持冷静
我们已经在 Solr 4 中查看了 Solr“加入”,但这是一个产品 每周产生数百万美元的网站,我们无法使用 alpha 或测试版软件。
最后,我们目前在过滤器查询中使用了供应商的包含列表,这很有效,但是由于包含列表在 1000 个中,因此速度非常慢。我们宁愿使用排除列表,但无法确定要使用的查询或架构。
有什么想法吗?
提前致谢 克里斯
【问题讨论】:
标签: solr