8.4Solr API使用(Result Grouping分组查询)
转载请出自出处:http://eksliang.iteye.com/blog/2169458
一、概述
分组统计查询不同于分组统计(Facet),facet只是简单统计记录数,并不能为每组数据返回实际的数据回来,solr提供的grouping查询能够解决这一问题,也就是说,他除了能分组外,还能把每组数据返回来。
二、语法简介
参考实例一
查询参数如下:
q=*:*
&group=true
&group.field=price
返回结果如下:

Solr Grouping参数列表
|
参数 |
参数含义 |
|
group |
(true/false) 是否开启分组查询 |
|
group.field |
group字段,通过在请求中加入group.field参数加以声明,如果需要对多个字段进行group by,那么该参数可以声明多次 |
|
group.query |
可以对任意条件进行分组统计查询 |
|
group.limit |
返回的数据的条目,默认为1 3 |
|
group.offset |
偏移量,跟上面的group.limit一起可以达到分页的效果 |
|
group.sort |
排序 |
|
group.main |
(true/false)等于true,将只返回最后一个group.query查询的分组数据,一定是最后一个group.query,如果最后的条件是group.field,也没有效果,同时其他分组统计条件都会失去作用 |
三、参考实例
参考实例一:group.field多个字段同时一起做分组统计查询演示,查询参数如下所示
q=*:*
&group=true
&group.field=price
&group.field=brand
&rows=2
返回结果如下所示:

参考实例二:group.query自定义条件统计演示,请求参数如下所示
q=*:*
&group=true
&group.query=price:[0 TO 3000]
&group.query=price:[2000 TO *]
&group.limit=2
返回结果如下所示:

参考实例三:group.main参数演示,请求参数如下所示
q=*:*
&group=true
&group.query=price:[0 TO 3000]
&group.query=price:[2000 TO *]
&group.field=price
&group.main=true
返回结果如下所示:

参考实例四:group.main参数演示,请求参数如下所示
q=*:*
&group=true
&group.field=price
&group.main=true
&rows=1
返回结果如下所示,可以看到其他group统计条件都会失去作用因为加了group.main=true
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
<lst name="params">
<str name="q">*:*</str>
<str name="group.field">price</str>
<str name="group.main">true</str>
<str name="group">true</str>
<str name="rows">1</str>
</lst>
</lst>
<result name="response" numFound="9" start="0">
<doc>
<str name="id">a001</str>
<str name="brand">联想</str>
<float name="price">1100.0</float>
<date name="birthday">2014-11-06T09:15:00Z</date>
<str name="remark">联想A001</str>
<long name="_version_">1487193657358417920</long>
</doc>
</result>
</response>
8.4Solr API使用(Result Grouping分组查询)的更多相关文章
- Result Grouping / Field Collapsing-结果分组
WiKi:http://wiki.apache.org/solr/FieldCollapsing Introduction 字段折叠和结果分组是考虑相同solr功能的两种不同的方式. 字段折叠折叠一组 ...
- .Net程序员学用Oracle系列(21):分组查询(GROUP BY)
1.GROUP BY 标准分组 1.1.GROUP BY 概述 1.2.WHERE 和 HAVING 的区别? 2.GROUP BY 扩展分组 2.1.ROLLUP 分组 2.2.CUBE 分组 2. ...
- day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁
一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- BBS--功能4:个人站点页面设计(ORM跨表与分组查询)
查询: 日期归档查询 1 date_format ============date,time,datetime=========== create table t_mul_new(d date,t t ...
- ORACLE分组查询和统计等
select flow_id,rw from (select t.flow_id ,rownum as rw from apex_030200.wwv_flow_list_templates t) ...
- 【mybatis】【mysql】mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains no ...
- 5 功能4:个人站点页面设计(ORM跨表与分组查询)
1.个人站点页面文章的查询 # 个人站点 http://www.cnblogs.com/wh1520577322/ http://www.cnblogs.com/liucong12345/ http: ...
- ElasticSearch6.0 Java API 使用 排序,分组 ,创建索引,添加索引数据,打分等(一)
ElasticSearch6.0 Java API 使用 排序,分组 ,创建索引,添加索引数据,打分等 如果此文章对你有帮助,请关注一下哦 1.1 搭建maven 工程 创建web工程 ...
随机推荐
- Re:从零开始的Spring Session(二)
上一篇文章介绍了一些Session和Cookie的基础知识,这篇文章开始正式介绍Spring Session是如何对传统的Session进行改造的.官网这么介绍Spring Session: Spri ...
- 移动端常见bug汇总001
点击样式闪动 Q: 当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景. A:根本原因是-webkit-tap-highlight-color,这个属性 ...
- [转载] npm 一些操作
npm i module_name -S = > npm install module_name --save 写入到 dependencies 对象 npm i module_name -D ...
- springboot自定义banner生成器
http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
- 关于__int64的使用!
关于__int64的使用! 类型 long long __int64 intmax_t 格式 %lld %I64d %I64d 在Dev C++中,三种类型均需用%I64d格式输出 ,c语言中int ...
- Android-远程Service
http://blog.csdn.net/guolin_blog/article/details/9797169 http://www.jianshu.com/p/eeb2bd59853f 将一个普通 ...
- hadoop_完全分布式配置
注:此文章所写内容完全在虚拟机配置,系统:centos,jdk和hadoop已经安装完成所配集群包括hadoop01,hadoop02,hadoop03,hadoop04四台,ip分别为:192.16 ...
- 设计模式原则(4)--Interface Segregation Principle(ISP)--接口隔离原则
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.定义: 使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口. 2.使用场景: 类A ...
- node.js(express)连接mongoDB入门指导
一.写在前面 人人都想成为全栈码农,作为一个web前端开发人员,通往全栈的简洁之路,貌似就是node.js了.前段时间学习了node.js,来谈谈新手如何快速的搭建自己的web服务,开启全栈之路. 二 ...
- WeUI移动页面实现时间选择器(年-月-日-时-分)
在做微信公众号的时候,使用的WeUI样式,有一个需求是用户选择一个预约时间,需要年月日并精确到小时和分钟. 但是WeUI的picker组件不支持直接显示5列,根据WeUI.js作者的建议,是将日期和时 ...