我在Solr中有一个类似于此的文档结构(不包括不相关的字段):
<field name="review_id" type="int" indexed="true" stored="true"/>
<field name="product_id" type="int" indexed="true" stored="true"/>
<field name="product_category" type="string" indexed="true" stored="true" multiValued="true"/>
product_id这里是一对多wrt review_id
我可以通过以下方式获得每个类别的评论数量:
/select?q=*:*&rows=0&facet=true&facet.field=product_category
我希望能够在product_category上进行分面,但是获取不同product_id:s的数量而不是review_id:s的数量。这可以在Solr中做到吗?
答案 0 :(得分:0)
Solr索引中没有一对多。它不是关系数据库。索引是关于评论或关于产品,这取决于您将要搜索的内容。引用Solr wiki about schema design:
Solr提供一个表格。在索引中存储集合数据库表通常需要对某些表进行非规范化。试图避免非规范化通常会失败。
所以第一步是修复架构设计。只有在那之后(并始终记住上述事实),你才能设计方面和其他东西。