显示有关SolR搜索结果的信息

时间:2014-04-07 12:35:40

标签: solr lucene full-text-search

我正在努力解决一个小问题,我必须显示从SolR返回的结果集的相关信息,但无法计算如何计算它而不迭代结果(坏)。

基本上我用state字段存储我的文档,而搜索应该返回所有文档,UI必须显示"找到15个实体,5个处于状态A,状态B为3,C" 为8。

目前我正在使用一种相当脆弱的方法来运行查询3次,并按类型添加其他范围,但我宁愿从我正在显示的一个查询中获取该信息。 (有一些边缘情况,数字不会加起来,因为SolR可以返回方面,我想在这种情况下必须有一种方法来使用该功能)

我正在使用Rails的SolR 3.5和sunspot gem

2 个答案:

答案 0 :(得分:1)

正如您自己提到的那样,您可以通过设置

来使用facet
facet=true&facet.field=state

我不太熟悉太阳黑子宝石,但通过查看你可以使用的documentation 像这样的方面(假设实体是你的可搜索的):

Entity.search do:
  facet :state
end

这应该返回查询返回的所有实体的状态,其中包含处于此状态的实体数。太阳黑子documentation告诉我你可以通过以下方式阅读这些方面:

search.facet(:state).rows.each do |facet|
  puts "State #{facet.value} has #{facet.count} entities"
end

答案 1 :(得分:0)

基本上,您可以使用三组主要功能从solr获取统计数据。

首先是分面:
http://wiki.apache.org/solr/SimpleFacetParameters

还有分组(字段折叠):
https://wiki.apache.org/solr/FieldCollapsing

统计数据包:
https://cwiki.apache.org/confluence/display/solr/The+Stats+Component

尽管统计数据,facet和group可能被称为olap的分析包替换,该解析包旨在用于solr V 5.0.0:
https://issues.apache.org/jira/browse/SOLR-5302

祝你好运。