2012-11-13 14 views
0

当前查询示例(搜索“测试”):查询应返回类型的结果和计数?

q=lastName:test*^10 firstName:test*^9 userLastNameLowerBoost:test*^8  
    userFirstNameLowerBoost:test*^7 member:test*^6 title:test*^5 
    message:test*&start=0&rows=5 

现在我Solr的指标有几种类型的结果(人员,信息等)和我的结果只包含前5分的结果通过提升排序。但我也需要所有类型的计数作为结果(例如,人数= 40,消息计数= 54,...)。如果我不限制'开始'和'行'的查询,我可以用java计算,但这不应该是分页感(加载整个结果)。所以我可以添加一个子查询如何计算类型(fieldname'documentType' - >可以是1 = person,2 = messages,..)。

我希望你已了解我想要什么:)

回答

1

您应该只需添加&facet=true&facet.field=documentType&facet.mincount=1即可获得整个索引中documentTypes的计数。

0

您可以使用现场分组为描述here。或facet search,它取决于您的查询类型

+0

但这不会工作,因为我目前的查询限制到5个结果,但我想要整个查询结果的计数。如果我添加'&group = true&group.field = documentType',匹配的结果也会受到限制。 – user1731299

0

您可以为每个文档添加一个字段,并按类型填充该字段,例如, PERSON,MESSAGE。
然后,您可以在此字段上面向您提供结果集中每种类型的计数。