【ES】学习8-聚合1

参考资料:

https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_combining_the_two.html

特定概念:

桶(Buckets)满足特定条件的文档的集合

指标(Metrics)对桶内的文档进行统计计算

SELECT COUNT(color)
FROM table
GROUP BY color 

COUNT(color) 相当于指标。

GROUP BY color 相当于桶。

聚合例子:

curl -XGET ‘localhost:9200/text/_search?pretty‘ -d ‘
{"size":0,
 "aggs":
    {"popular_ports":
        {"terms":
            {"field":"port"}
        }
    }
}‘

对port字段做聚合,结果名称为popular_ports。size设为0表示不关心搜索结果,结果的hits部分会是空值。

计算每种颜色车辆价格的平均值

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": {
            "avg_price": {
               "avg": {
                  "field": "price"
               }
            }
         }
      }
   }
}

嵌套桶

每个颜色的汽车制造商的分布

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": {
            "avg_price": {
               "avg": {
                  "field": "price"
               }
            },
            "make": {
                "terms": {
                    "field": "make"
                }
            }
         }
      }
   }
}

每个颜色的汽车制造商的分布,以及各个制造商生产汽车的最高和最低价格。

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": {
            "avg_price": { "avg": { "field": "price" }
            },
            "make" : {
                "terms" : {
                    "field" : "make"
                },
                "aggs" : {
                    "min_price" : { "min": { "field": "price"} },
                    "max_price" : { "max": { "field": "price"} }
                }
            }
         }
      }
   }
}
时间: 2024-10-12 20:25:00

【ES】学习8-聚合1的相关文章

ES权威指南(中文版)学习_聚合_3

1.查找所有员工最大的共同爱好: GET /megacorp/employee/_search {     "aggs":{         "all_interests":{             "terms":{                 "field":"interests"             }         }     } } 我们可以看到两个职员对音乐有兴趣,一个喜欢林学,一个

ES学习(四)--嵌套聚合、下钻分析、聚合分析

一. 先将文本field的fielddata属性设置为true PUT /ecommerce/_mapping { "properties":{ "tags":{ "type":"text", "fielddata":true } } } 二.统计每个tag下的商品数量 A.GET /ecommerce/_search { "size": 0,  "aggs": {

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

首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--OpenGL ES的基本用法.绘制流程与着色器编译>中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项.本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实.首先,物体有各种颜色

OpenGL ES学习资料总结

从今年春节后开始学习OpenGL ES,发现网上资料很有限,而且良莠不齐,所以整理了一下我学习时用到的资料和一些心得. 1. OpenGL ES1.x参考资料 把NEHE的教程移植到了Android上,当然用的是ES1 http://insanitydesign.com/wp/projects/nehe-android-ports/ 2. OpenGL ES2.x参考资料 有很多Android上ES2应用的文章 http://tangzm.com/blog/?p=20 特别好的书,网上有英文版p

ES学习2

1:es中的分页 一般搜索引擎中的分页都不会提供很大的页面查询,因为查询的页码越大,查询效率越低. 例子: 我们就先预想一下我们在搜索一个拥有5个主分片的索引.当我们请求第一页搜索的时 候,每个分片产生自己前十名,然后将它们返回给请求节点,然后这个节点会将50条 结果重新排序以产生最终的前十名. 现在想想一下我们想获得第1,000页,也就是第10,001到第10,010条结果,与之前同理, 每一个分片都会先产生自己的前10,010名,然后请求节点统一处理这50,050条结果 ,然后再丢弃掉其中的

Elasticsearch之es学习工作中遇到的坑(陆续更新)

1:es集群脑裂问题(不要用外网ip,节点角色不要混用) 原因1:阿里云服务器,外网有时候不稳定. 解决方案:单独采购服务器,内网安装 原因2:master和node节点没有分开 解决方案: 分角色:master节点(三台),data节点(随着数据增加而增加),client(随着查询压力而增加)节点 Master节点:node.master: true   node.data: false Data节点:node.master: false   node.data: true Client 节点

c++学习笔记——聚合类

聚合类定义:1.所有的成员都是public的. 2.没有定义任何构造函数. 3.没有类内初始值. 4.没有基类,也没有virtual函数. 聚合类的初始化:我们可以提供一个花括号括起来的成员函数初始值列表,并用它初始化聚合类的数据成员: 例如:Data   val={0,"Anna"};

Maven学习总结——聚合与继承

一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module> 3 <module>模块二</module> 4 <module>模块三</module> 5 </modules> 例如:对项目的Hello.HelloFriend.MakeFriends这三个模块进行聚合 1 <modules>

Es学习第六课, ES基本搜索_search

前面几课ES的基本概念.安装和分词都讲过了,下面我们就来实战一下ES的核心功能-搜索,这节课我们主要讲的是基本搜索 _search(注意:ES的关键字都要加前缀_,所以我们在定义索引.类型名称时不要带_). 我们先通过kibana插入几条三个文档 PUT /customer/doc/1?pretty { "name": "John Doe" } POST /customer/doc/ { "title": "My second blog

Es学习第七课, term、terms、match等基本查询语法

term.terms查询 term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword.numeric.date等明确值的 term:查询某个字段里含有某个关键词的文档 GET /customer/doc/_search/ { "query": { "term": { "title": "blog" } } } terms:查询某个字段里含有多个关键词的文档 GET /custome