Solr / SolrNet分组结果

时间:2011-05-01 16:11:40

标签: solr solrnet fieldcollapsing

我正在使用Solr建立一个使用solrnet构建在asp.net上的产品目录,到目前为止一切运行良好。我需要通过添加一些分组选项来扩展搜索结果。

首先,我将解释架构的外观:

 <field name="product_id" type="string" indexed="true" stored="true" required="true" /> 
 <field name="name" type="string" indexed="true" stored="true"/>
 <field name="merchant" type="string" indexed="true" stored="true"/>
 <field name="merchant_id" type="int" indexed="false" stored="true"/>
 <field name="merchant_logo" type="string" indexed="false" stored="true"/>
 <field name="brand" type="string" indexed="true" stored="true"/>
 <field name="brand_id" type="int" indexed="false" stored="true"/>
 <field name="group_id" type="int" indexed="true" stored="true"/>
 <field name="group_name" type="string" indexed="true" stored="true"/>
 <field name="has_group" type="boolean" indexed="true" stored="true"/>

因此,当你看到上面的产品有一个“group_id”和“group name”时,我的架构上还有一个名为“has group”的布尔标志。

以下是产品结果的一些示例

Product A – group id 1 - group Name 1 – has group true
Product B – group id 1 - group Name 1 – has group true
Product C – group id 2 - group Name 2 – has group true
Product D – group id 2 - group Name 2 – has group true
Product E – has group false
Product F – has group false

但是当我显示这些结果时,我需要通过其组名显示具有组名(或ID)的产品。不属于集团的产品将在集团后面列出。

所以我的结果应该是这样的:

Group Name 1
Group Name 2
Product E
Product F

确实我也需要实现分页,所以换句话说当有人搜索某个产品时,如果产品包含组名,我会在结果中列出它们,然后列出其他产品。

这甚至可能吗?如果可能的话,我需要做什么。我已经在solr中阅读过FieldCollapsing,但我仍然不知道这是否正确http://wiki.apache.org/solr/FieldCollapsing

1 个答案:

答案 0 :(得分:0)

是的,如果您想要对整个索引进行分组,则需要field collapsing功能。 SolrNet对此的支持目前已被打破,因为它是Solr中未发布的功能,并且自SolrNet首次实施以来发生了很大变化。有关详细信息和更新,请参阅http://code.google.com/p/solrnet/issues/detail?id=127