转载请出自出处:http://eksliang.iteye.com/blog/2169134

一、概述

Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能

二、参数

参数

含义

stats

是否开启stats(true/false)

stats.field

添加一个字段来统计,可以有多个

stats.facet

在给定的面返回值的子结果。

三、参考实例

参考实例一:查询参数

q=*:*
&stats=true
&stats.field=price
&stats.field=popularity
&rows=0

返回结果如下:

<lst name="stats">
<lst name="stats_fields">
<lst name="price">
<double name="min">0.0</double> --最小值
<double name="max">2199.0</double> --最大值
<double name="sum">5251.2699999999995</double> --总和
<long name="count">15</long> --记录数,也就是多少行记录
<long name="missing">11</long> --结果集中,有多少条记录是空值
<double name="sumOfSquares">6038619.160300001</double> --平方和(x1^2 + x2^2+xn^2)
<double name="mean">350.08466666666664</double> --平均数(x1+x2+xn)/n
<double name="stddev">547.737557906113</double> --标准差
</lst>
<lst name="popularity">
<double name="min">0.0</double>
<double name="max">10.0</double>
<double name="sum">90.0</double>
<long name="count">26</long>
<long name="missing">0</long>
<double name="sumOfSquares">628.0</double>
<double name="mean">3.4615384615384617</double>
<double name="stddev">3.5578731762756157</double>
</lst>
</lst>
</lst>

参数含义如下:

返回字段

字段含义

min

最小值

max

最大值

sum

总和

count

记录数,也就是多少行记录

missing

结果集中,有多少条记录是空值

sumOfSquares

平方和(x1^2 + x2^2+xn^2)

mean

平均数(x1+x2+xn)/n

stddev

标准差

参考实例二:查询参数如下

q=*:*
&stats=true
&stats.field=price
&stats.field=popularity
&stats.facet=inStock
&rows=0

返回结果如下所示:

<lst name="stats">
<lst name="stats_fields">
<lst name="price">
<double name="min">0.0</double>
<double name="max">2199.0</double>
<double name="sum">5251.2699999999995</double>
<long name="count">15</long>
<long name="missing">11</long>
<double name="sumOfSquares">6038619.160300001</double>
<double name="mean">350.08466666666664</double>
<double name="stddev">547.737557906113</double>
<lst name="facets">
<lst name="inStock">
<lst name="false"> --统计的是:在返回结果中inStock等于false部分,price的统计
<double name="min">11.5</double> --在inStock等于false的记录中pirce的最小值
<double name="max">649.99</double> --在inStock等于false的记录中pirce的最大值
<double name="sum">1161.39</double>--在inStock等于false的记录中pirce的总和
<long name="count">4</long> --inStock等于false的记录数
<long name="missing">0</long> --在inStock等于false的记录中pirce等于空的记录
<double name="sumOfSquares">653369.2551</double>--在inStock等于false的记录中pirce的平方和
<double name="mean">290.3475</double>--在inStock等于false的记录中pirce的平均值
<double name="stddev">324.63444676281654</double>--在inStock等于false的记录中pirce的标准差
</lst>
<lst name="true">
<double name="min">0.0</double>
<double name="max">2199.0</double>
<double name="sum">4089.879999999999</double>
<long name="count">11</long>
<long name="missing">0</long>
<double name="sumOfSquares">5385249.905200001</double>
<double name="mean">371.8072727272727</double>
<double name="stddev">621.6592938755265</double>
</lst>
</lst>
</lst>
</lst>
</lst>

温馨提示:如果统计的列不是数字类型。而是字符串,那么统计的结果中只有如下列

参考实例如下:查询参数

q=*:*
&stats=true
&stats.field=CAR_NUM
&rows=0

返回结果如下所示:

<lst name="stats">
<lst name="stats_fields">
<lst name="CAR_NUM">
<str name="min">08449</str>
<str name="max">黑ZZ6T8警</str>
<long name="count">9999999</long>
<long name="missing">0</long>
<lst name="facets"/>
</lst>
</lst>
</lst>

官方API地址:http://wiki.apache.org/solr/StatsComponent

8.3Solr API使用(StatsComponent聚合统计)的更多相关文章

  1. 关于MongoDB时间格式转换和时间段聚合统计的用法总结

    一 . 背景需求 在日常的业务需求中,我们往往会根据时间段来统计数据.例如,统计每小时的下单量:每天的库存变化,这类信息数据对运营管理很重要. 这类数据统计依赖于各个时间维度,年月日.时分秒都有可能. ...

  2. Solr.NET快速入门(五)【聚合统计,分组查询】

    聚合统计 属性 说明 Min 最小值 Max 最大值 Sum 总和 Count 记录数,也就是多少行记录 Missing 结果集中,有多少条记录是空值 SumOfSquares 平方和(x1^2 + ...

  3. MongoDB 中聚合统计计算--$SUM表达式

    我们一般通过表达式$sum来计算总和.因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种:1,统计符合条件的所有文档的某个字段的总和:2,统计每个文档的数组字段里面的各个数据值的和. ...

  4. 用logstash 作数据的聚合统计

    用logstash 作数据的聚合统计 以spark-streaming 处理消费数据,统计日志经spark sql存储在mysql中 日志写入方式为append val wordsDataFrame ...

  5. Elasticsearch 第六篇:聚合统计查询

    h2.post_title { background-color: rgba(43, 102, 149, 1); color: rgba(255, 255, 255, 1); font-size: 1 ...

  6. 小试牛刀ElasticSearch大数据聚合统计

    ElasticSearch相信有不少朋友都了解,即使没有了解过它那相信对ELK也有所认识E即是ElasticSearch.ElasticSearch最开始更多用于检索,作为一搜索的集群产品简单易用绝对 ...

  7. pandas:聚合统计、数据分箱、分组可视化

    1.聚合统计 1.1描述统计 #df.describe(),对数据的总体特征进行描述 df.groupby('team').describe() df.groupby('team').describe ...

  8. 百度地图API 重新生成点聚合的功能

    百度点聚合用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能. http://api.map.baidu.com/library/MarkerClusterer/1.2/docs/symbo ...

  9. Elasticsearch--Aggregation详细总结(聚合统计)

    Elasticsearch的Aggregation功能也异常强悍. Aggregation共分为三种:Metric Aggregations.Bucket Aggregations. Pipeline ...

随机推荐

  1. 传统项目转前端工程化——路由跳转时出现浏览器锁死和白屏【该死的同步ajax】

    [一开始我想到是该死的同步ajax,但我没验证,把他忽略了] 在探索前端工程化vue-cli做spa时,从搜索结果页跳转商品详情页时,因为详情页有很多ajax请求,并且都用的同步请求,就会导致请求时浏 ...

  2. Table转换成实体、Table转换成实体集合(可转换成对象和值类型)

    /// <summary> /// Table转换成实体 /// </summary> /// <typeparam name="T">< ...

  3. SSH无密码登录的原理及配置

    一.SSH概念(百度) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目 ...

  4. __int64 与long long 的区别

    //为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int    ...

  5. 手动创建script解决跨域问题(jsonp从入门到放弃)

    vue项目一般用axios代替jQuery发送ajax请求,但是不支持jsonp格式,需要安装jsonp的依赖包,这就很不爽了,能自己轻易实现的,为什么要引乱七八糟的插件.jsonp其实就是利用< ...

  6. 1-1 sacc(scss)入门

    定义: CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 通俗的说,“ ...

  7. Js利用Canvas实现图片压缩

    最近做的APP项目涉及到手机拍照上传图片,因为手机拍照的图片通常都比较大,所以上传的时候就会很慢.为此,需要对图片进行压缩处理来优化上传功能.以下是具体实现: /* * 图片压缩 * img 原始图片 ...

  8. PGIS下载离线地图 SQLite+WPF

    项目是超高分辨率屏幕墙,实时在线加载PGIS地图速度会比较慢,造成屏幕大量留白.于是使用地图缓存,事先把这个区块的地图全部down下来,使用Sqlite数据库保存.留存. //Task taskDow ...

  9. paste 命令

    Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式,一列列地加以合并. 语法: paste [-s][-d <间隔字符>][--help][--vers ...

  10. 让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由WeTest质量开放平台团队发表于云+社区专栏 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样 ...