Solr.NET快速入门(五)【聚合统计,分组查询】
聚合统计
属性 | 说明 |
---|---|
Min | 最小值 |
Max | 最大值 |
Sum | 总和 |
Count | 记录数,也就是多少行记录 |
Missing | 结果集中,有多少条记录是空值 |
SumOfSquares | 平方和(x1^2 + x22+xn2) |
Mean | 平均数(x1+x2+xn)/n |
StdDev | 标准差 |
示例:
ISolrOperations<Product> solr = ...
var results = solr.Query(SolrQuery.All, new QueryOptions {
Rows = 0,
Stats = new StatsParameters {
Facets = new[] { "inStock" },
FieldsWithFacets = new Dictionary<string, ICollection<string>> {
{"popularity", new List<string> {"price"}}
}
}
});
foreach (var kv in results.Stats) {
Console.WriteLine("Field {0}: ", kv.Key);
var s = kv.Value;
Console.WriteLine("Min: {0}", s.Min);
Console.WriteLine("Max: {0}", s.Max);
Console.WriteLine("Sum of squares: {0}", s.SumOfSquares);
foreach (var f in s.FacetResults) {
Console.WriteLine("Facet: {0}", f.Key);
foreach (var fv in f.Value) {
Console.WriteLine("Facet value: {0}", fv.Key);
Console.WriteLine("Min: {0}", fv.Value.Min);
Console.WriteLine("Max: {0}", fv.Value.Max);
Console.WriteLine("Sum of squares: {0}", fv.Value.SumOfSquares);
}
}
}
分组统计查询
分组统计查询不同于分组统计(Facet),facet只是简单统计记录数,并不能为每组数据返回实际的数据回来,solr提供的grouping查询能够解决这一问题,也就是说,他除了能分组外,还能把每组数据返回来。
此功能可用于通过指定字段的唯一值折叠或分组文档。 结果中包括按文档键和字段值的记录数。
对于Solr 1.4 / 3.1
此功能不包括在股票Solr 1.4或3.1中。 您需要应用补丁并重新编译Solr。
示例代码:
ISolrOperations<Product> solr = ...
var results = solr.Query(new SolrQueryByField("features", "noise"), new QueryOptions {
Collapse = new CollapseParameters {
Field = "manu"
}
});
foreach (KeyValuePair<string, int> collapsedDocument in results.Collapsing.DocResults)
Console.WriteLine("Collapse count for document '{0}': {1}", collapsedDocument.Key, collapsedDocument.Value);
Solr.NET快速入门(五)【聚合统计,分组查询】的更多相关文章
- Django聚合与分组查询中value与annotate的顺序问题
在学习Django聚合与分组查询中,发现value与annotate的顺序不同时,查询结果大相径庭,经过一下午的研究,终于弄明白了,现在分享给大家,先上结论: 结论 value在annotate前面时 ...
- Django-ORM之聚合和分组查询、F和Q查询、事务
聚合查询 聚合对查询的结果进行一步的计算加工. aggregate()是QuerySet 的一个终止子句 ,他的作用是,返回一个包含一些键值对的字典.键的名称是聚合值的标识符,值是计算出来的聚合值.键 ...
- Django 多表、跨表、聚合、分组查询
前期准备: 创建表 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalFi ...
- 五、Oracle 分组查询、视图
一.分组函数1.avg:平均分2.sum:求和3.max:最大值4.min:最小值注意:前面四个必须针对数值字段,且参数只能是一个5.count:求个数 二.分组查询1.语法是 group by 分组 ...
- (5)Maven快速入门_5maven聚合与继承_scope依赖范围
多个maven项目实现统一管理, maven 插件jar继承自父的maven项目.对maven中jar的版本进行管理. 1.创建一个项目来管理多个maven项目 new ----maven Proje ...
- Solr.NET快速入门(九)【二进制文档上传】【完】
二进制文档上传 SolrNet支持Solr"提取"功能(a.k.a. Solr"Cell")从二进制文档格式(如Word,PDF等)索引数据. 这里有一个简单的 ...
- Solr.NET快速入门(八)【多核多实例,映射验证】
多核/多实例 本页介绍如何配置SolrNet访问(读/写)多个Solr内核或实例. 它假定您知道Solr内核是什么,如何在SolrNet外部配置和使用它们. 此页面不涵盖CoreAdminHandle ...
- Solr.NET快速入门(七)【覆盖默认映射器,NHibernate集成】
覆盖默认映射器 默认情况下,SolrNet使用属性映射Solr字段. 但是,您可能需要使用另一个映射程序. 替换默认映射器取决于您如何设置库: 内置容器 如果使用默认的内置容器,可以在调用Startu ...
- Solr.NET快速入门(四)【相似查询,拼写检查】
相似查询 此功能会返回原始查询结果中返回的每个文档的类似文档列表. 参数通过QueryOptions的MoreLikeThis属性定义. 示例:搜索"apache",为结果中的每个 ...
随机推荐
- ROS:ubuntu-Ros使用OrbSLAM
一般无误的官方连接:https://github.com/raulmur/ORB_SLAM ubuntu16.04没有多少改变,还是使用kinetic老代替indigo Related Publica ...
- css3基础篇一
CSS3 选择器 选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname 选择 id=&quo ...
- SQLite 的使用
private void button1_Click(object sender, EventArgs e) { //查询数据库内容并绑定 string sql= "select* from ...
- 题解 P3258 【[JLOI2014]松鼠的新家】(From luoguBlog)
唯一能得分的题也被自己搞炸了,好的. 考场上读完题基本认定和lca脱不了干系,想了一会确认是树剖. 那么问题来了,考前一节课刚发现自己之前打的树剖是错的. 而且就算是错的我也没信心考场调出来. 于是打 ...
- 关于Arrays协助类中的排序方法
sort方法是优化的快速排序,不稳定. paralleSort是多线程排序,稳定,但是有长度限制.
- C++调用Matlab函数求特征值
最近需要用到C++和Matlab的混编,记录一下学习过程~ 要实现的是调用Matlab函数,求矩阵前k个最小的特征值及其特征向量. //C++ #include "engine.h" ...
- vue组件的拆分
vue组件的拆分 <div class="div"> <!-- 拆分出来的组件 自定义名字moban --> <moban></moban ...
- Bamboo Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...
- CodeForces-999D Equalize the Remainders (贪心+神奇的STL)
题意:给你一个n,m;其中n一定能被m整除,然后给你n个数 有一种操作 选择n个数中的任意一个,使其+1: 条件: Ci 属于[0,m-1] Ci代表ai模m的余数为i的个数 且都等于n/m; ...
- Modbus串行通信
一.Modbus通信协议简介 1. Modbus协议 Modbus 是一个请求/应答协议,并且提供功能码规定的服务.Modbu协议是 OSI 模型第 7 层上的应用层报文传输协议. MODBUS协议支 ...