摘要: Solr对结果的分组处理除了facet还可以使用group。Solr的group是根据某一字段对结果分组,将每一组内满足查询的结果按顺序返回。

Group对比Facet

Group和Facet的概念很像,都是用来分组。Facet返回所有相关的结果并允许用户基于facet的目录重新定义结果集。Facet可以对分组数量进行过滤,以及排序,和日期范围,时间范围分组,但是如果你想得到具体的数据,还得需要查询一次或多次。group可以得到分组的组数量,一次请求,可以拿到所有的数据。
Group和Facet可以结合起来使用,但只能使用facet.fieldfacet.range,还不支持日期date和维度统计pivot faceting.

Group参数

参数 类型 说明
group 布尔值 设为true,表示结果需要分组
group.field 字符串 需要分组的字段,字段类型需要时是StrField或TextField
group.func 查询语句 可以指定查询函数
group.query 查询语句 可以指定查询语句
rows 整数 返回多少组结果,默认10
start 整数 指定结果开始位置/偏移量
group.limit 整数 每组返回多数条结果,默认1
group.offset 整数 指定每组结果开始位置/偏移量
sort 排序算法 控制各个组的返回顺序
group.sort 排序算法 控制每一分组内部的顺序
group.format grouped/simple 设置为simple可以使得结果以单一列表形式返回
group.main 布尔值 设为true时,结果将主要由第一个字段的分组命令决定
group.ngroups 布尔值 设为true时,Solr将返回分组数量,默认fasle
group.truncate 布尔值 设为true时,facet数量将基于group分组中匹相关性高的文档,默认fasle
group.cache.percent 整数0-100 设为大于0时,表示缓存结果,默认为0。该项对于布尔查询,通配符查询,模糊查询有改善,却会减慢普通词查询。

Solr分组聚合查询之Group的更多相关文章

  1. Solr分组聚合查询之Facet

    摘要: Solr的分组聚合是一个笼统的概念,目的就是把查询结果做分类,有多种方式可以做到很类似的结果.也正是由于它们的不同表现,可以适合于多种场景. 何为Facet Facet是一种手段,用来将搜索结 ...

  2. java使用elasticsearch分组进行聚合查询(group by)-项目中实际应用

    java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 .SQL:select id ...

  3. crm使用FetchXml分组聚合查询

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月09号  */ namespace Net.CRM.FetchXml {     using System;     using Micr ...

  4. orm分组,聚合查询,执行原生sql语句

    from django.db.models import Avg from app01 import models annotate:(聚合查询) ret=models.Article.objects ...

  5. SQL分组聚合查询练习(SQL Server和Oracle相似)20190514

    先建表 CREATE TABLE [dbo].[orderdt_jimmy]( ,) NOT NULL, [order_nid] [int] NOT NULL, ) NOT NULL, [qty] [ ...

  6. Django对postgresql数据库进行分组聚合查询

    action(methods=['GET'], detail=False, url_path='count') def count(self, request): """ ...

  7. 浅析MySQL使用 GROUP BY 分组聚合与细分聚合

    原创文章,转载请注明出处:http://www.cnblogs.com/weix-l/p/7521278.html: 若有错误,请评论指出,谢谢! 1. 聚合函数(Aggregate Function ...

  8. solr分组排序实现group by功能

    http://wiki.apache.org/solr/FieldCollapsing solr分组排序,实现group by功能,代码待添加!

  9. ElasticSearch 6.2 Mapping参数说明及text类型字段聚合查询配置

    背景: 由于本人使用的是6.0以上的版本es,在使用发现很多中文博客对于mapping参数的说明已过时.ES6.0以后有很多参数变化. 现我根据官网总结mapping最新的参数,希望能对大家有用处. ...

随机推荐

  1. shell 判断字符串长度是否不为0

    test.sh #!/bin/bash s1="" if test $s1 ;then echo "length is not zero" else echo ...

  2. python输出日期时间

    import datetime base = datetime.datetime.today() , ): print(base + datetime.timedelta(days=x))

  3. js 获取地址栏域名以及URL

    console.log(window.location.host) console.log(document.domain) console.log(window.location.href) con ...

  4. [学习笔记]ST表

    ST表 给定一个数列$a,O(nlogn)$预处理,$O(1)$查询数列在区间$[l,r]$的最值. 本文介绍求最大值. 实现 预处理 $st[i][j]$表示$max\{a_k\}(k\in[i,i ...

  5. REST服务使用@RestController实例,输出xml/json

    REST服务使用@RestController实例,输出xml/json 需要用到的服务注解 org.springframework.web.bind.annotation.RestControlle ...

  6. Dlib——C++机器学习库,有传统机器学习的,也有深度学习的

    Dlib的目标用户并没有Hyperopt-sklearn细分,它是一个基于C++语言的通用的机器学习和数据分析库.值得一提的是,虽然Dlib的确是由C++实现的,但它却提供了针对Python语言的AP ...

  7. Javascript 面向对象编程(补充):封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

  8. vue2 过渡动画

    <body> <div id="app"> <transition name="move"> // transition里面 ...

  9. jquery检测input checked 控件是否被选中的方法

    jquery检测input checked 控件是否被选中 js部分 复制代码代码如下: function tongyianniu(){ var gouxuan=$('input[type=check ...

  10. JS使用及技巧.

    JS小技巧 1.如果你JS了解的还不深请看 汤姆大叔的博客 ,肯定让你上升一个台阶. 2.百科全书 MDN. 3.两个非常简单实用的提示插件 toastr sweetalert. 4.数据类型的复制: ...