`
eksliang
  • 浏览: 598994 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

solr StatsComponent(聚合统计)

    博客分类:
  • solr
阅读更多

StatsComponent

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

http://eksliang.iteye.com/

一、概述

       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

 

分享到:
评论
4 楼 cgl616165946 2017-03-14  
290434409 写道
请教下,/select??q=*:*&stats=true&stats.field=recoinfoLength&rows=0&indent=true进行了这个查询,返回的结果却是这样的,
-<response>


-<lst name="responseHeader">

<int name="status">0</int>

<int name="QTime">15</int>


-<lst name="params">

<str name="?q">*:*</str>

<str name="indent">true</str>

<str name="stats.field">recoinfoLength</str>

<str name="stats">true</str>

<str name="rows">0</str>

</lst>

</lst>

<result name="response" maxScore="0.0" start="0" numFound="0"> </result>


-<lst name="stats">


-<lst name="stats_fields">


-<lst name="recoinfoLength">

<null name="min"/>

<null name="max"/>

<long name="count">0</long>

<long name="missing">0</long>

<double name="sum">0.0</double>

<double name="sumOfSquares">0.0</double>

<double name="mean">NaN</double>

<double name="stddev">0.0</double>

</lst>

</lst>

</lst>

</response>

这个字段定义:
<field name="silenceLength" type="long" indexed="true" stored="true" required="true" multiValued="false" docValues="true"/>
请问为何统计不出结果


你的http请求有两个问号
<str name="?q">*:*</str>
所以查不出数据
3 楼 290434409 2016-01-14  
请教下,/select??q=*:*&stats=true&stats.field=recoinfoLength&rows=0&indent=true进行了这个查询,返回的结果却是这样的,
-<response>


-<lst name="responseHeader">

<int name="status">0</int>

<int name="QTime">15</int>


-<lst name="params">

<str name="?q">*:*</str>

<str name="indent">true</str>

<str name="stats.field">recoinfoLength</str>

<str name="stats">true</str>

<str name="rows">0</str>

</lst>

</lst>

<result name="response" maxScore="0.0" start="0" numFound="0"> </result>


-<lst name="stats">


-<lst name="stats_fields">


-<lst name="recoinfoLength">

<null name="min"/>

<null name="max"/>

<long name="count">0</long>

<long name="missing">0</long>

<double name="sum">0.0</double>

<double name="sumOfSquares">0.0</double>

<double name="mean">NaN</double>

<double name="stddev">0.0</double>

</lst>

</lst>

</lst>

</response>

这个字段定义:
<field name="silenceLength" type="long" indexed="true" stored="true" required="true" multiValued="false" docValues="true"/>
请问为何统计不出结果
2 楼 290434409 2016-01-14  
-<response>


-<lst name="responseHeader">

<int name="status">0</int>

<int name="QTime">15</int>


-<lst name="params">

<str name="?q">*:*</str>

<str name="indent">true</str>

<str name="stats.field">recoinfoLength</str>

<str name="stats">true</str>

<str name="rows">0</str>

</lst>

</lst>

<result name="response" maxScore="0.0" start="0" numFound="0"> </result>


-<lst name="stats">


-<lst name="stats_fields">


-<lst name="recoinfoLength">

<null name="min"/>

<null name="max"/>

<long name="count">0</long>

<long name="missing">0</long>

<double name="sum">0.0</double>

<double name="sumOfSquares">0.0</double>

<double name="mean">NaN</double>

<double name="stddev">0.0</double>

</lst>

</lst>

</lst>

</response>
1 楼 290434409 2016-01-14  
请教下,/select??q=*:*&stats=true&stats.field=recoinfoLength&rows=0&indent=true进行了这个查询,返回的结果却是这样的,
-<response>


-<lst name="responseHeader">

<int name="status">0</int>

<int name="QTime">15</int>


-<lst name="params">

<str name="?q">*:*</str>

<str name="indent">true</str>

<str name="stats.field">recoinfoLength</str>

<str name="stats">true</str>

<str name="rows">0</str>

</lst>

</lst>

<result name="response" maxScore="0.0" start="0" numFound="0"> </result>


-<lst name="stats">


-<lst name="stats_fields">


-<lst name="recoinfoLength">

<null name="min"/>

<null name="max"/>

<long name="count">0</long>

<long name="missing">0</long>

<double name="sum">0.0</double>

<double name="sumOfSquares">0.0</double>

<double name="mean">NaN</double>

<double name="stddev">0.0</double>

</lst>

</lst>

</lst>

</response>

这个字段定义:
<field name="silenceLength" type="long" indexed="true" stored="true" required="true" multiValued="false" docValues="true"/>
请问为何统计不出结果

相关推荐

    Solr分组统计

    在Solr中,分组统计(Grouping)是一种强大的功能,它允许用户基于某个字段对搜索结果进行分组,以便更好地理解和分析数据。分组统计可以提供每个分组内的文档数量,或者根据特定查询对每个分组进行进一步的过滤。 ...

    Apache Solr(solr-8.11.1.zip)

    Apache Solr是一款开源的企业级搜索平台,由Apache软件基金会维护。它是基于Java的,提供了高效、可扩展的全文检索、数据分析和分布式搜索功能。Solr-8.11.1是该软件的一个特定版本,包含了从早期版本到8.11.1的所有...

    solr(solr-9.0.0.tgz)

    Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理全文搜索和企业级的搜索应用。它基于Java,利用Lucene库构建,提供了高效、可扩展的搜索和导航功能。Solr-9.0.0是该软件的最新版本,此...

    solr4.7服务搭建

    ### Solr 4.7 服务搭建详细指南 #### 一、环境准备 为了搭建 Solr 4.7 服务,我们需要确保以下环境已经准备好: 1. **Java Development Kit (JDK) 1.7**:Solr 需要 Java 运行环境支持,这里我们选择 JDK 1.7 ...

    Apache Solr(solr-8.11.1.tgz)

    Apache Solr 是一个开源的全文搜索引擎,由Apache软件基金会维护,是Lucene项目的一部分。它提供了高效、可扩展的搜索和导航功能,广泛应用于企业级的搜索应用中。Solr-8.11.1是该软件的一个特定版本,包含了最新的...

    solr服务器_solr_

    8. **Faceting**:Solr提供分面搜索功能,允许用户通过分类或统计方式查看搜索结果的不同方面,如按照品牌、价格区间等进行筛选。 9. **Highlighting**:高亮显示是Solr的一项特性,它可以在搜索结果中突出显示匹配...

    solr(solr-9.0.0-src.tgz)源码

    Solr是Apache软件基金会的一个开源项目,它是基于Java的全文搜索服务器,被广泛应用于企业级搜索引擎的构建。源码分析是深入理解一个软件系统工作原理的重要途径,对于Solr这样的复杂系统尤其如此。这里我们将围绕...

    solr-6.2.0源码

    Solr是Apache软件基金会开发的一款开源全文搜索引擎,它基于Java平台,是Lucene的一个扩展,提供了更为方便和强大的搜索功能。在Solr 6.2.0版本中,这个强大的分布式搜索引擎引入了许多新特性和改进,使其在处理大...

    solr.war包solr.war包solr.war包solr.war包solr.war包

    solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...

    solr-4.10.3

    10. **监控与管理**:SolrAdmin是Solr内置的Web界面,用于监控和管理Solr实例,包括查看统计信息、加载和删除索引、测试查询等。 总的来说,Solr-4.10.3作为一个稳定的版本,为用户提供了强大且灵活的全文搜索引擎...

    解决solr启动404问题

    Solr是Apache Lucene项目的一个子项目,是一个高性能、基于Java的企业级全文搜索引擎服务器。当你在尝试启动Solr时遇到404错误,这通常意味着Solr服务没有正确地启动或者配置文件设置不正确。404错误表示“未找到”...

    solr的学习

    ### Solr 学习知识点详解 #### 一、Solr 概述 - **定义**:Solr 是 Apache 下的一个顶级开源项目,采用 Java 开发,它是基于 Lucene 的全文搜索服务器。Solr 可以独立运行在 Jetty、Tomcat 等 Servlet 容器中。 -...

    solr增量更新架包apache-solr-dataimportscheduler.jar

    Apache Solr 是一个开源的全文搜索引擎,广泛应用于各种企业级数据搜索和分析场景。增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-...

    solr-7.4.0.zip

    Solr,全称为Apache Solr,是一款开源的企业级全文搜索引擎,由Apache软件基金会开发并维护。它是基于Java的,因此在使用Solr之前,确保你的系统已经安装了Java 8或更高版本是至关重要的。标题"solr-7.4.0.zip"表明...

    Linux上Solr的启动方式

    使用Solr内置的Jetty服务器启动Solr (1)借助X Shell上传solr的安装包到/usr/local/目录下,使用 tar -zxvf命令进行解压.  (2)使用内置的Jetty来启动Solr服务器只需要在example目录下,执行start.jar程序即可,...

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    Solr8.4.0 是 Apache Solr 的一个版本,这是一个高度可配置、高性能的全文搜索和分析引擎,广泛用于构建企业级搜索应用。 在 Solr 中,ikanalyzer 是一个重要的组件,它通过自定义Analyzer来实现中文的分词处理。...

    solr-4.4.0.tgz

    Solr 是一个开源的全文搜索引擎,由 Apache 软件基金会开发。版本 4.4.0 是 Solr 的一个重要里程碑,它包含了丰富的特性和改进。这个“solr-4.4.0.tgz”文件是一个针对 Linux 系统的压缩包,用于在服务器上部署 Solr...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    Solr 数据导入调度器(solr-dataimport-scheduler.jar)是一个专门为Apache Solr 7.x版本设计的组件,用于实现数据的定期索引更新。在理解这个知识点之前,我们需要先了解Solr的基本概念以及数据导入处理...

    solr解压版安装包

    在这里可以进行查询、优化索引、查看统计信息等操作。 7. **监控与性能调优**:Solr提供了丰富的监控指标,如JMX接口,可以通过监控工具(如JConsole)观察Solr的内存使用、线程状态等。根据监控结果进行性能调优,...

    ambari离线安装solr所需文件

    `solr.tgz`是一个包含Solr软件包的压缩文件,解压后将得到Solr的源代码或者预编译的二进制文件,这取决于tgz文件的内容。`SOLR-github`文件夹可能包含了从GitHub上下载的Solr项目的源代码,方便用户根据特定需求进行...

Global site tag (gtag.js) - Google Analytics