solr 对一个多值得字段分组然后对另一个字段求和
时间: 2023-08-11 20:44:11 浏览: 179
一个基于Solr的新闻搜索引擎
可以通过使用Solr的Grouping和Faceting功能实现对多值字段分组并对另一个字段求和。
首先,使用Grouping功能对多值字段进行分组。例如,假设我们有一个"tags"字段,它包含多个标签,我们想对每个标签进行分组,则可以使用以下查询:
```
/select?q=*:*&group=true&group.field=tags
```
这将返回每个不同的标签作为一个分组,并包含每个分组内的文档。
接下来,使用Faceting功能对每个分组内的另一个字段进行求和。例如,假设我们有一个"views"字段,它包含每个文档的浏览次数,我们想对每个分组内的"views"字段求和,则可以使用以下查询:
```
/select?q=*:*&group=true&group.field=tags&facet=true&facet.pivot=tags,views&stats=true&stats.field={!tag=total_sum}views
```
这将返回每个标签及其对应的浏览次数总和,并在每个分组下计算总和。在这个例子中,我们使用了Facet Pivoting,它允许我们在一个查询中进行多个分组和聚合操作。
注意,在上面的查询中,我们使用了"stats.field"参数来指定要对哪个字段进行求和,并使用"{!tag=total_sum}"标记来为该字段创建一个标签,以便我们在查询结果中引用它。
阅读全文