2

我在 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 中完成吗?

4

1 回答 1

0

Solr 索引中没有一对多。它不是关系数据库。该索引是关于评论或关于产品的,这取决于您要搜索的内容。引用Solr wiki 关于模式设计

Solr 提供一张表。在索引中存储一组数据库表通常需要对某些表进行非规范化。避免非规范化的尝试通常会失败。

所以第一步是修复模式设计。只有在那之后(并始终牢记上述事实),您才能设计构面和其他东西。

于 2010-08-18T13:18:57.173 回答