我使用Solr制作了一个基于asp.net和solrnet的产品目录,到目前为止一切都很好。我需要通过添加一些分组选项来扩展搜索结果。
首先,我将解释模式是什么样子的:
<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”和“组名”,我的模式中也有名为“has”的布尔标志。
以下是一些产品结果的示例
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但是,当我显示这些结果时,我需要用组名(或I)来显示结果的组名。不属于某一集团的产品将在集团之后立即上市。
所以我的结果应该是:
Group Name 1
Group Name 2
Product E
Product F实际上,我也需要实现分页,换句话说,如果某个产品包含组名,那么当有人搜索某个产品时,我会将它们列在结果的顶部,然后列出其他产品。
这有可能吗?如果可能的话,我需要做些什么。我已经在solr中读到了关于FieldCollapsing的文章,但是我仍然不知道这是否是正确的方法,http://wiki.apache.org/solr/FieldCollapsing
发布于 2011-05-01 21:12:29
是的,如果要对整个索引进行分组,则需要场崩塌特性。SolrNet对此的支持目前已经失效,因为它是Solr中一个未发布的特性,并且自SolrNet中的第一个实现以来发生了很大变化。有关详细信息和更新,请参见http://code.google.com/p/solrnet/issues/detail?id=127。
https://stackoverflow.com/questions/5849579
复制相似问题