按时间统计:date_histogram

GET /cars/transactions/_search
{
"size" : ,
"aggs": {
"sales": {
"date_histogram": {
"field": "sold",
"interval": "month",
"format": "yyyy-MM-dd"
}
}
}
}

注意,这种写法在数字字段没有问题,但是在文本字段使用之前必须先把对应字段的fielddata设为true才可以。否则会报错:

"caused_by" : {
"type" : "illegal_argument_exception",
"reason" : "Fielddata is disabled on text fields by default. Set fielddata=true on [name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."
}

注意,设置了fielddata会消耗大量内存。

返回空buckets:设置参数 min_doc_count

限制返回时间范围:设置参数 extended_bounds

GET /cars/transactions/_search
{
"size" : ,
"aggs": {
"sales": {
"date_histogram": {
"field": "sold",
"interval": "month",
"format": "yyyy-MM-dd",
"min_doc_count" : ,
"extended_bounds" : {
"min" : "2014-01-01",
"max" : "2014-12-31"
}
}
}
}
}

扩展例子:

GET /cars/transactions/_search
{
"size" : ,
"aggs": {
"sales": {
"date_histogram": {
"field": "sold",
"interval": "quarter",
"format": "yyyy-MM-dd",
"min_doc_count" : ,
"extended_bounds" : {
"min" : "2014-01-01",
"max" : "2014-12-31"
}
},
"aggs": {
"per_make_sum": {
"terms": {
"field": "make"
},
"aggs": {
"sum_price": {
"sum": { "field": "price" }
}
}
},
"total_sum": {
"sum": { "field": "price" }
}
}
}
}
}

分析一下上面的例子:

先是一个聚合,名为sales,类型是date_histogram,会根据时间生成桶

再看sales桶里,嵌套了一个聚合,包括per_make_sum和total_sum,

total_sum:用到了sum,这是一个指标,不会产生新的桶,会生成数值。

per_make_sum:用到了terms,会根据make字段划分子桶

在per_make_sum桶中,嵌套了sum_price聚合,也是一个sum指标,不会产生新桶。

上面的层级结构表示了桶的嵌套关系。关键在于区分哪些是桶,哪些是指标。

【ES】学习9-聚合2的更多相关文章

  1. OpenGL ES学习笔记(三)——纹理

    首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <OpenGL ES学习笔记( ...

  2. ES学习笔记

    ES学习 1. 安装 1.1 ES 安装配置 curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5. ...

  3. 七、django学习之聚合函数

    七.django学习之聚合函数 如何使用 from django.db.models import Avg,Max,Min,Sum models.Book.objects.all().aggregat ...

  4. OpenGL ES 学习笔记 - Overview - 小旋的博客

    移动端图形标准中,目前 OpenGL ES 仍然是比较通用的标准(Vulkan 则是新一代),这里新开一个系列用于记录学习 OpenGL ES 的历程,以便查阅理解. OverView OpenGL ...

  5. Es学习第九课, 聚合查询和复合查询

    ES除了实现前几课的基本查询,也可以实现类似关系型数据库的聚合查询,如平均值sum.最小值min.最大值max等等 我们就用上一课的数据作为参考来举例 聚合查询 sum聚合 sum是一个求累加值的聚合 ...

  6. Elasticsearch 6.x版本全文检索学习之聚合分析入门

    1.什么是聚合分析? 答:聚合分析,英文为Aggregation,是es除搜索功能外提供的针对es数据做统计分析的功能.特点如下所示: a.功能丰富,提供Bucket.Metric.Pipeline等 ...

  7. Es学习第一课,了解基本功能和概念

    Elasticsearch作为这几年最流行的搜索引擎,越来越多的互联网企业都在采用它:作为java开发者来说,如果想进一步提高自己能力,同时也为了能够在实际工作中遇到搜索.存储问题多一个解决方案,学习 ...

  8. OpenGL ES学习笔记(一)——基本用法、绘制流程与着色器编译

    首先声明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. 在Android.iOS等移动平台上 ...

  9. OpenGL ES学习资料总结

    从今年春节后开始学习OpenGL ES,发现网上资料很有限,而且良莠不齐,所以整理了一下我学习时用到的资料和一些心得. 1. OpenGL ES1.x参考资料 把NEHE的教程移植到了Android上 ...

  10. OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成

    首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--O ...

随机推荐

  1. es6解构赋值的高级技巧

    1. 解构嵌套的对象,注意,这时p是模式,不是变量,因此不会被赋值.如果p也要作为变量赋值,可以写成下面这样. let obj = { p: [ 'Hello', { y: 'World' } ] } ...

  2. SQLQueryStress

    工具介绍及使用链接:http://www.cnblogs.com/lyhabc/p/3187922.html 工具下载链接:http://files.cnblogs.com/files/coce/sq ...

  3. mysql 原理 ~ LRU 算法与buffer_pool

    一 简介:针对查询和事务的页在内存中的处理,是如何进行的 二 LRU算法 普通 : 实现的是末尾淘汰法,当整个链表已满时,淘汰尾部,将新的数据页加入头部 mysql_lru改进 : 分为两部分 yan ...

  4. 《SSH网上商城》-视频目录--代码可以跑起来

    本课程是2015年2月份的,就是14年底的. 课程第一天的代码-添加 jsp-api.jar   servlet-api.jar就可以跑起来,环境 JDK1.7 和tomcat8, SSH网上商城\S ...

  5. 课程10:《黑马程序员_Hibernate开发资料》视频目录--没有细看

    老师很厉害,讲得蛮详细的 \Hibernate视频教程\01_黑马程序员_Hibernate教程__Hibernate入门基础.avi; \Hibernate视频教程\02_黑马程序员_Hiberna ...

  6. python - 条件语句/循环语句/迭代器

    条件测试:if 条件表达式python 的比较操作        所有的python对象都支持比较操作            可用于测试相等性.相对大小等            如果是复合对象,pyt ...

  7. 20165237 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...

  8. python模块-----pymysql

    一.安装 本模块为python第三方模块,需要单独安装.作用为调用mysql接口执行模块 pip3 install pyMySql 操作步骤: #!/usr/bin/python3 import py ...

  9. python,小练习(计算两点之间直线长度)

    #首先引入数学函数 import math #创建一个点的类 class Point(): #初始化点的坐标(x,y) def __init__(self,x=0,y=0): self.x = x s ...

  10. Trickbot展示新技巧:密码抓取器模块

    Trickbot是一个简单的银行木马 来源 https://blog.trendmicro.com/trendlabs-security-intelligence/trickbot-adds-remo ...