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 权威指南>中文版 序言 前言 基础入门 深入搜索 处理人类语言 聚合 地理位置 数据建模 管理.监控和部署
随机推荐
- 刚開始学习的人非常有用之chm结尾的參考手冊打开后无法正常显示
从网上下载了struts2的參考手冊.chm(本文适用全部已.chm结尾的文件)不能正常打开使用. 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/ ...
- oc31--new实现
// // main.m // new方法实现原理 #import <Foundation/Foundation.h> #import "Person.h" int m ...
- Codeforces--629A--Far Relative’s Birthday Cake(暴力模拟)
Far Relative's Birthday Cake Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d &a ...
- 完美解决 linux sublime 中文无法输入
感谢oschina 中几位前辈的分享 下面是我结合自己的情况所配置的具体步骤: 系统环境: ubuntu 12.10 输入法:fcitx fcitx 安装 apt-get install fcitx ...
- 关于MFC控件删除出现“具有该ID的控件已存在”这样的情况的解决方案,详细,网上都没有这么详细的,我是“深受其害”,所以想将详细的方法分享出去。
网上关于MFC控件删除出现“具有该ID的控件已存在”这样的情况,在网上找了很多关于这方面的东西,但是都不是很全,也不容易弄明白.现在问我直接通过一个项目和图片的形式和大家一块分享一个这个解决方法(如有 ...
- centos安装lamp步骤还可以
1. 用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用/etc/init.d/httpd start ...
- selenium3 + python - js处理readonly属性
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...
- Python 44 前端概述 、三剑客 、常用标签与分类
1.前端三剑客是哪三位?文件的后缀内容?在前端开发中的功能是什么? HTML: .htm .html 内容 CSS: .css 效果 JS: .js 行为 2.简述三剑客的主要 ...
- winxp精简版没有IIS的解决办法
首先在“开始”菜单的“运行”中输入“c:\Windows\inf\sysoc.inf”,系统会自动使用记事本打开sysoc.inf这个文件.在sysoc.inf中找到“[Components]”这一段 ...
- ★Java语法(四)——————————运算符
使用除法“/” ,要特别注意数据类型的问题.若被除数和除数都是整形,且被除数不能被除数整除时,这时输出的结果为整数,(即整形数/整形数=整形数),这是因为整形变量无法保存小数点后面的数据所致,要特别 ...