如何在Solr中对分组求和?

5
我想知道如何在Solr中像SQL一样执行此操作?
select sum(Col1) group by Col2,Col3

我可以在Solr中像这样解决问题:select sum(Col1) group by Col2。(http://wiki.apache.org/solr/StatsComponent)你需要帮助吗?

2个回答

2

我认为你可以使用已经提到的Stats Component功能来实现这一点。例如:

/select?q=:&stats=true&stats.facet=Col2&stats.field=Col1

这样,您就可以在结果中获得带有分组Col2的统计块,您可以访问每个Col2sum值。
但是文档说明不再推荐使用stats.facet了。

这个传统参数不建议新用户使用-相反,请考虑将stats.field与facet.pivot结合使用

但我必须承认,我无法仅使用建议的stats.field和facet.pivot来解决您的用例。

1

Solr提供了一个名为字段折叠的分组功能
这将允许您在非多值字段上进行分组。


您可以将字段组合成一个字段,例如col2_col3,这样可以实现您所需的行为。 - Jayendra
doc1: name=>smith, money=>20.0, country=>"USA", age=>"25" doc2: name=>robert, money=>30.0, country=>"china", age=>"22" doc3: name=>andiy, money=>60.0, country=>"USA", age=>"22" doc4: name=>mark, money=>25.0, country=>"USA", age=>"22" 我需要的结果是: 20.0,"USA","25"; 30.0,"china","22"; 85.0,"USA","22"。这是否可能?例如以下查询:&stats=true&stats.field=money&stats.facet=country和stats.facet=age? - user1214199
你能解释一下你在这里尝试分组的内容吗?你可以将国家年龄字段合并或在一个字段上进行分组,并在组内进行排序。你也可以通过查询进行分组。 - Jayendra
谢谢。是的,我想要将国家和年龄字段合并...也许合并是解决问题的唯一方法。但我不想使用它,因为我还有其他需要分组的字段。如果我使用合并,会有太多的组合... - user1214199
请为负投票添加注释!! - Jayendra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接