使用太阳黑子在Solr中按统计数据分组

时间:2013-10-03 14:10:04

标签: ruby-on-rails statistics sunspot-solr

我有一些特定查询的统计信息,用于计算整个结果集的价格总和。我想在返回的结果中为不同的组提供不同的统计数据。

例如,状态='进行中'的结果的价格总和与状态='完成'的结果的价格总和分开。

使用太阳黑子是否可以这样?

现有查询:

 Residential.search do
     with(:zip_code, <zip_code>)

     stat(:list_price, :type => "min")
     stat(:list_price, :type => "max")
     stat(:list_price, :type => "mean")
     stat(:square_feet, :type => "min")
     stat(:square_feet, :type => "max")
     stat(:square_feet, :type => "mean")
 end

1 个答案:

答案 0 :(得分:1)

查看solr Stats Component页面

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

在那里你可以看到stat组件有可能为facet字段生成一个stat。

这意味着您可以生成像

这样的solr查询
q=*:*&stats=true&stats.field=list_price&stats.field=square_feet&stats.facet=status

这将返回全局统计信息以及字段list_price和square_feet的每个状态的统计信息

结果集如下所示:

我假设您使用的是太阳黑子数据库https://github.com/giovannelli/sunspot_stats

并且他们说你的字段之后的参数是方面字段

stat(:your_field, :facet => :your_facet_filed, :type => "min")