You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr 8.11.1版本如何统计查询结果中指定字段的数值总和

Solr 8.11.1 结果集数值字段求和实现方案

直接使用Solr内置的Stats统计组件即可实现需求,无需修改索引配置,在查询请求中追加对应参数就能拿到匹配结果集的字段总和,统计范围不受分页参数start、rows影响。

具体配置方法

在原有查询参数基础上追加以下参数:

  • 开启统计组件:stats=true
  • 指定需要做求和统计的数值字段,多个字段就重复声明该参数:stats.field=total_amountA、stats.field=total_amountB

完整HTTP请求示例

GET /solr/你的核心名/select?q=*:*&start=0&rows=2&stats=true&stats.field=total_amountA&stats.field=total_amountB

你原有查询里的筛选条件(q、fq参数)保持不变即可,统计组件会自动基于所有命中筛选条件的文档计算数值。

返回结果说明

执行查询后,响应结果会在原有response节点外新增stats节点,结构如下:

{
  "response": {
    "numFound": 2,
    "start": 0,
    "docs": [
      {"total_amountA":10,"total_amountB":5,"id":"2"},
      {"total_amountA":10,"total_amountB":5,"id":"1"}
    ]
  },
  "stats": {
    "stats_fields": {
      "total_amountA": {
        "sum": 20.0,
        "min": 10.0,
        "max": 10.0,
        "count": 2,
        "mean": 10.0
      },
      "total_amountB": {
        "sum": 10.0,
        "min": 5.0,
        "max": 5.0,
        "count": 2,
        "mean": 5.0
      }
    }
  }
}

直接读取对应字段下的sum属性值,就能拿到你需要的统计结果:total_amountA总和为20,total_amountB总和为10。

注意事项

  • 被统计字段必须是Solr中的数值类型(int、long、float、double等),字符串类型字段无法做数值求和计算。
  • 如果使用SolrJ等客户端调用,直接调用客户端内置的stats相关API设置参数即可,不需要手动拼参数,核心逻辑和HTTP请求一致。

内容的提问来源于stack exchange,提问作者noah Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:09:20