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 权威指南>中文版 序言 前言 基础入门 深入搜索 处理人类语言 聚合 地理位置 数据建模 管理.监控和部署
随机推荐
-
Redis学习-基础环境介绍(二)
1.通过VMware安装了Centos6.8系统 2.Reids安装过程,需要GCC环境 »通过下面命令,根据提示直接安装 1 yum install gcc 3.Redis选用的是3.2.4(建议使 ...
-
redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
项目需要在rh7.2安装redis-stat,各种编译不过.通过一步步跟踪编译错误日志发现时缺少各种开发库. 需要安装的库列表如下: zlib-devel openssl-devel readline ...
-
[转] linux之sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
-
Seek the Name, Seek the Fame(Kmp)
Seek the Name, Seek the Fame Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (J ...
-
关于ECSHOP模板架设的服务器php版本过高报错的解决方法(二)
ECShop安装之后,在后台发现一个错误,这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示. ECShop安装之后,在后台发现一个错误提示: Strict Standar ...
-
QQ的发展演变
在其发展史上,以色列人功不可没.正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“I Seek You ...
- 石头剪刀布(智能判断你是否赢了)(if判断和for)
-
java中事件驱动
在java语言中,事件不是由事件源自己来处理的,而是交给事件监听者来处理,要将事件源(如按钮)和对事件的具体处理分离开来.这就是所谓的事件委托处理模型. 事件委托处理模型由产生事件的事件源.封装事件相 ...
-
Django model中的Class Meta
1.Meta元数据 代码示例: class Foo(models.Model): bar = models.CharField(maxlength=30) class Meta: # ... Meta ...
-
HTML5 监听移动端浏览器返回键兼容版本
// 往windosw对象中的历史记录注入URL的方法 function addUrl() { var state = { title: "title", url: "# ...