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 权威指南聚合阅读笔记(七)的更多相关文章

  1. elasticsearch 权威指南入门阅读笔记(一)

    相关文档 esapi:https://es.xiaoleilu.com/010_Intro/10_Installing_ES.html     https://esdoc.bbossgroups.co ...

  2. 《Elasticsearch 权威指南》阅读笔记

    书籍地址 https://www.elastic.co/guide/cn/elasticsearch/guide/current/languages.html

  3. elasticsearch 权威指南排序阅读笔记(六)

    默认排序 默认查询是通过_source 准确性权重来排序 字段排序 { "query":{ "match":{ "productName": ...

  4. elasticsearch 权威指南搜索阅读笔记(四)

    多索引多type搜索 分页搜索 每页5条 查询一到3页数据 第一页:http://127.0.0.1:9200/blogs2/product/_search?size=5&from=0 第二页 ...

  5. 《javascript权威指南》阅读笔记 1

    3.1-3.5 3.1 数字 3.1首先声明了在JS中的数字是不区分整数值和浮点数值的.其次给出了js浮点类型表示的范围:最大值是±1.7976931348623157×10^308,最小值±5×10 ...

  6. 《HTTP权威指南》--阅读笔记(二)

    URL的三部分: 1,方案 scheme 2,服务器位置 3,资源路径 URL语法: <scheme>://<user>:<password>@<host&g ...

  7. 《HTTP权威指南》--阅读笔记(一)

    HTTP: HyperText Transfer Protocol 测试站点:http://www.joes-hardware.com URI包括URL和URN URI: Uniform Resour ...

  8. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  9. Elasticsearch: 权威指南(官方教程)

    <Elasticsearch 权威指南>中文版 序言 前言 基础入门 深入搜索 处理人类语言 聚合 地理位置 数据建模 管理.监控和部署

随机推荐

  1. JavaScript模式读书笔记 第4章 函数

    2014年11月10日 1.JavaScript函数具有两个特点: 函数是第一类对象    函数能够提供作用域         函数即对象,表现为:         -1,函数能够在执行时动态创建,也 ...

  2. Android面试常问的技术问题

    面试时技术经理会问你一些工作中遇到的Android方面的问题.谈谈你所做的项目,和在项目中所扮演的角色. 很多其它内容请參考我的博客:点击打开链接 1.怎样优化ListView? ①Item布局,层级 ...

  3. spring:利用Spring AOP 使日志输入与方法分离

    对方法进行日志输出是一种很常见的功能.传统的做法是把输出语句写在方法体的内部,在调用该方法时,用输入语句输出信息来记录方法的执行! 1.先写一个普通类: package com.importnew; ...

  4. 【撸码caffe四】 solver.cpp&&sgd_solver.cpp

    caffe中solver的作用就是交替低啊用前向(forward)算法和后向(backward)算法来更新参数,从而最小化loss,实际上就是一种迭代的优化算法. solver.cpp中的Solver ...

  5. bzoj 3598 [ Scoi 2014 ] 方伯伯的商场之旅 ——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3598 数位DP...东看西看:http://www.cnblogs.com/Artanis/ ...

  6. [Apple开发者帐户帮助]六、配置应用服务(3)创建地图标识符和私钥

    要与MapKit JS通信,您将使用Maps私钥对一个或多个开发人员令牌进行签名. 首先注册地图标识符以识别您的应用.为使用MapKit JS的每个应用注册地图标识符.接下来创建并下载启用了MapKi ...

  7. 关于SSL证书配置、升级的一些问题总结

    SSL会成为网站.APP.小程序(小程序已经强制使用https)等项目的标配.关于SSL证书安装使用的问题今天总结下,以备用. 环境配置:windows server 2008 R2和IIS7.0 1 ...

  8. 【转载】【翻译】JavaScript Scoping and Hoisting--JS作用域和变量提升的探讨

    原文链接:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting 你知道下面的JavaScript代码执行后会aler ...

  9. 设计模式之桥接模式(Java语言描述)

    桥接模式定义 將抽象部分与它的具体实现部分分离,使它们都可以独立地变化.它是一种对象结构型模式,又称为柄体模式或接口模式. Decouple an abstraction from its imple ...

  10. 【Oracle】rollup函数

    当我们在做报表统计的时候,很多时候需要用到‘合计’这个功能,比如我们想得到如下格式的报表: 这张表是按照deptno分组,然后按照deptno分组合计.rollup函数可以完美的解决这个问题. 1.建 ...