对结果进行分组并保持方面计数的一致性

时间:2011-08-30 02:54:06

标签: solr lucene full-text-search search-engine fieldcollapsing

使用Solr 3.3
钥匙商店商品名称描述类别价格
================================================== =======================
1商店名称Xbox 360 Nice游戏机电子游戏199.99
2商店名称Xbox 360 Nice游戏机电子游戏199.99
3商店名称Xbox 360尼斯游戏机电子游戏249.99

我有类似于上表的数据并加载到Solr中。项目名称, 描述类别,价格可供搜索。

预期结果

Facet Field         
 Category             
   Electronic(1)   
   Games(1) 

 **Store Name** 
 XBox 360 Nice game machine priced from 199.99 - 249.99

我可以发送给Solr以接收上述结果的查询参数是什么,基本上我想通过Store,ItemName,Description和min max price对其进行分组

我希望保持分页与main(StoreName)保持一致。分页应基于“商店名称”组。所以如果找到20家商店。我应该能够正确分页。

请建议

3 个答案:

答案 0 :(得分:8)

如果使用Solr 4.0,则在添加参数“group.facet = true”时,新的“分组”(替换FieldCollapsing)可以解决此问题。

因此,要对字段进行分组,您需要将以下参数添加到搜索请求中:

group=true         // Enables grouping
group.facet=true   // Facet counts to be number of groups instead of documents
group.field=Store  // Groups results by the field "Store"
group.ngroups=true // Tells Solr to return the number of groups found

找到的组数是您要向用户显示并用于分页的,而不是正常的总计数,这将是索引中的文档总数。

答案 1 :(得分:0)

你是否看过现场倒塌?它是Solr 3.3中的新功能。

http://wiki.apache.org/solr/FieldCollapsing

答案 2 :(得分:0)

我做的是创建另一个字段,将所需字段分组到一个字段中并存储,问题解决了,所以现在我只对该字段进行分组,得到正确的计数。