elasticsearch 权威指南聚合阅读笔记(七)
count(1)
select clssId,count(1) from student group by classId
{
"size":0,
"aggs": {
"group_by_classId": {
"terms": {
"field": "classId.keyword"
}
}
}
}
结果 key为classId doc_count 为count
size 0表示只看聚合结果不看搜索结果
{
"took": 82,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 0,
"hits": []
},
"aggregations": {
"group_by_classId": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "2",
"doc_count": 3
},
{
"key": "5",
"doc_count": 1
}
]
}
}
}
count+avg
select clssId,count(1),avg(score) from student group by classId
{
"size":0,
"aggs": {
"group_by_classId": {
"terms": {
"field": "classId.keyword"
},
"aggs": {
"average_balance": {
"avg": {
"field": "score"
}
}
}
}
}
}
结果
{
"took": 95,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 0,
"hits": []
},
"aggregations": {
"group_by_classId": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "2",
"doc_count": 3,
"average_balance": {
"value": 53.333333333333336
}
},
{
"key": "5",
"doc_count": 1,
"average_balance": {
"value": 10
}
}
]
}
}
}
聚合并排序
select clssId,count(1),avg(score) from student group by classId order by avg(score) desc
{
"size":0,
"aggs": {
"group_by_classId": {
"terms": {
"field": "classId.keyword",
"order": {
"average_score": "desc"
}
},
"aggs": {
"average_score": {
"avg": {
"field": "score"
}
}
}
}
}
}
Metric Aggregations
地理边界聚合
1.添加测试mapping
{
"mappings": {
"doc": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
2.添加测试数据
{
"text": "成都",
"location": {
"lat": 11.12,
"lon": -5.34
}
}
{
"text": "广州",
"location": {
"lat": 66.12,
"lon": -22.34
}
}
{
"text": "深圳",
"location": {
"lat": 121.12,
"lon": -77.34
}
}
测试query
{
"size":0,
"query" : {
"match_all" : { }
},
"aggs" : {
"viewport" : {
"geo_bounds" : {
"field" : "location",
"wrap_longitude" : true //可选参数,指定边界框是否允许与国际日期变更线重叠,默认值是true。
}
}
}
}
结果
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0,
"hits": []
},
"aggregations": {
"viewport": {
"bounds": {
"top_left": {
"lat": 41.1199999647215,
"lon": -71.34000004269183
},
"bottom_right": {
"lat": 11.119999992661178,
"lon": -5.340000037103891
}
}
}
}
}
地理重心聚合
用以上测试数据
query
{
"size":0,
"query" : {
"match_all" : { }
},
"aggs" : {
"centroid" : {
"geo_centroid" : {
"field" : "location"
}
}
}
}
结果
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0,
"hits": []
},
"aggregations": {
"centroid": {
"location": {
"lat": 26.11999997869134,
"lon": -38.34000003989786
},
"count": 2
}
}
}
平均值聚合
{
"size":0,
"aggs" : {
"avg_grade" : { "avg" : { "field" : "mdProductId" } }
}
}
count聚合
{
"aggs" : {
"types_count" : { "value_count" : { "field" : "type" } }
}
}
最大值聚合
{
"aggs" : {
"max_price" : { "max" : { "field" : "price" } }
}
}
最小值聚合
{
"aggs" : {
"min_price" : { "min" : { "field" : "price" } }
}
}
使用脚本聚合
如最小值为例子
{
"aggs" : {
"min_price" : {
"min" : {
"script" : {
"inline" : "doc.price.value"
}
}
}
}
}
设置聚合默认值
POST /sales/_search
{
"aggs" : {
"grade_max" : {
"max" : {
"field" : "grade",
"missing": 10
}
}
}
}
聚合结果脚本运算
{
"aggs" : {
"min_price_in_euros" : {
"min" : {
"field" : "price",
"script" : {
"inline" : "_value * params.conversion_rate",
"params" : {
"conversion_rate" : 1.2
}
}
}
}
}
}
父子聚合
{
"size": 0,
"aggs": {
"detail": {
"children": {
"type": "ic_product_store_account"--子文档
},
"aggs": {
"sum_price": {
"sum": {
"field": "sumCount"--子文档聚合字段
}
}
}
}
}
}
goupBy语法
avg
{
"size": 0,
"aggs" : {
"group_by_tags" : {
"terms" : { "field" : "productId" },
"aggs" : {
"avg_price" : {
"avg" : { "field" : "price" }
}
}
}
}
}
select productId,avg(price) from type grup by productId
需要查询条件加上query语法就行了
elasticsearch 权威指南聚合阅读笔记(七)的更多相关文章
- elasticsearch 权威指南入门阅读笔记(一)
相关文档 esapi:https://es.xiaoleilu.com/010_Intro/10_Installing_ES.html https://esdoc.bbossgroups.co ...
- 《Elasticsearch 权威指南》阅读笔记
书籍地址 https://www.elastic.co/guide/cn/elasticsearch/guide/current/languages.html
- elasticsearch 权威指南排序阅读笔记(六)
默认排序 默认查询是通过_source 准确性权重来排序 字段排序 { "query":{ "match":{ "productName": ...
- elasticsearch 权威指南搜索阅读笔记(四)
多索引多type搜索 分页搜索 每页5条 查询一到3页数据 第一页:http://127.0.0.1:9200/blogs2/product/_search?size=5&from=0 第二页 ...
- 《javascript权威指南》阅读笔记 1
3.1-3.5 3.1 数字 3.1首先声明了在JS中的数字是不区分整数值和浮点数值的.其次给出了js浮点类型表示的范围:最大值是±1.7976931348623157×10^308,最小值±5×10 ...
- 《HTTP权威指南》--阅读笔记(二)
URL的三部分: 1,方案 scheme 2,服务器位置 3,资源路径 URL语法: <scheme>://<user>:<password>@<host&g ...
- 《HTTP权威指南》--阅读笔记(一)
HTTP: HyperText Transfer Protocol 测试站点:http://www.joes-hardware.com URI包括URL和URN URI: Uniform Resour ...
- 《javascript权威指南》读书笔记——第一篇
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...
- Elasticsearch: 权威指南(官方教程)
<Elasticsearch 权威指南>中文版 序言 前言 基础入门 深入搜索 处理人类语言 聚合 地理位置 数据建模 管理.监控和部署
随机推荐
- Linux 中的键盘映射【转】
本文转载自:http://hessian.cn/p/144.html [转]Linux 中的键盘映射 原文地址:http://www.linuxidc.com/Linux/2011-04/35197. ...
- Linux下使用popen()执行shell命令【转】
本文转载自:https://my.oschina.net/u/727148/blog/262987 函数原型: #include “stdio.h” FILE popen( const char co ...
- bzoj 4025 二分图 分治+并查集/LCT
bzoj 4025 二分图 [题目大意] 有n个点m条边,边会在start时刻出现在end时刻消失,求对于每一段时间,该图是不是一个二分图. 判断二分图的一个简单的方法:是否存在奇环 若存在奇环,就不 ...
- PHPExcel 使用心得
最近有个项目需要将数据导出成excel,以前都没接触过.便google一下知道了PHPExcel 这个据说很强大的类库. 写这个博文主要目的等同于做笔记 1首先看了下官方的文档.http://phpe ...
- 【BZOJ4590】自动刷题机
[思路分析] 比赛的时候想到了用二分+贪心,二分的部分与贪心的部分也写对了,但是由于数据范围未看没有开long long,且二分左端点赋值过小导致WA掉 正解:二分+贪心 二分代码的长度,贪心判断能否 ...
- Java中的常用类有哪些
1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...
- 5.12redis
Window配置Redis环境和简单使用 一.关于Redis Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序 ...
- (转)i686只是cpu的指令等级,包括32bit和64bit
i代表intel系列的cpu 386 几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 pentum-IV 与 K7 系列的 CPU等等,都可以正常的工作! 那个 i 指的是 In ...
- 【Oracle】append
我们在生产环境中经常遇到需要往表中插入大量数据的情况,怎么样才能让插入数据的速度变快呢?Oracle中的append简直就是神器!!没图说个**,直接上图: 是不是看晕了?哈哈,莫慌,请看下面总结: ...
- 打包Python程序
我选择的是pyinstaller,(py2exe到目前为止只支持到Python3.4). 安装.如果能联网最后用pip.在cmd中输入pip install Pyinstaller.如果不能联网,可以 ...