Aggregations|学习笔记

简介: 快速学习 Aggregations。

开发者学堂课程【ElasticSearch 最新快速入门教程Aggregations】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10662


Aggregations

 

主要内容

一、聚合操作 ES JavaAPI_aggregation

二、聚合操作演示

 

一、聚合操作 ES JavaAPI_aggregation

1、aggregation 指的是一些聚合操作,聚合操作就是根据字段进行分组统计;根据字段分组,统计其他字段的值;size 设置为0,会获取所有数据,否则,只会返回10条

//需求:查询 bank 索引库中,所有女性员工数,最年轻的员工的年龄,最低薪水(银行存款余额),以及平均薪水

//步骤:

//1)检索

SearchResponse response = client.preparesearch(indices)

.setTypes("account")

//设置检索的条件

.setQuery(QueryBuilders.termouery("gender.keyword", "F"))

//设置聚合操作

//1员工数

.addAggregation(new ValuecountAggregationBuilder("cntEmp”,

ValueType.LONG).field("account_number"))

讲解:cntEmp 是别名,account_number 是账户号

//2最年轻的(女性)员工的年龄

.addAggregation(new MinAggregationBuilder("minAge").field("age"))

//3(女性员工)最少银行存款余额

.addAggregation(new MinAggregationBuilder("minBalance").field("balance"))

//4 (女性员工)平均银行存款余额

.addAggregation(new AvgAggregationBuilder("avgBalance").field("balance"))

//触发检索

.get();

//2)分析检索后的结果

Aggregations aggregations = response.getAggregations();

Valuecount cntEmp = aggregations.get("cntEmp");

Min minAge - aggregations.get("minAge");

Min minBalance = aggregations.get("minBalance");

Avg avgBalance = aggregations.get("avgBalance");

//3)显示结果

//%d,占位符,同时也是格式符,用来格式化整数的;%f:格式化小数;%s:格式化字符串;%n:用来换行System.out.printf("bank素引库中,所有女性员工数是:%d,最年轻的员工的年龄:%.0f,最低银行存款余额:%.2f,以及平均银行存款余额:%.2f", I

cntEmp.getvalue(), minage.getvalue(), minBalance.getvalue(),

avgBalance.getValue());

 

二、聚合操作演示

1、查询索引库 bank 中的 type 之 account,查询出所有的女性的账户总数,最少银行存款余额,最多银行存款余额,以及平均银行存款余额。

@Test

public vold testAggregation() throws IOException {

//步骤:

//1查询

SearchResponse response= client.prepareSearch

( …indices :“bank”)

.setTypes("account”)

//所有的女性的账户总数

.addAggregation(new ValueCountAggregationBuilder( name :"cnt”, ValueType.LONG.fleld(“account_ number)

注意:

field 里一般用组建,组建的是账户号 accout_number

//最少银行存款余额

.addAggregation(new MinAggregationBuilder( name :"minBalance”).field(“balance”))

//最多银行存款余额

.addAggregation(new MaxAggregationBuilder( name:"maxBalance").fleld("balance”)

//平均银行存款余额

.addAggregation(new AvgAggregationBullder(name:"avgBalance”).field(“balance”)).

.get();

//2分析结果

Aggregations aggregations = response.getAggregations();

ValueCount vc = aggregations.get("cnt”);

Min minBalance = aggregations.get("minBalance"); Max maxBalance = aggregations.get("maxBalance"); Avg avgBalance = aggregations.get("avgBalance”)

}

System.out.println( “所有的女性的账户总数是:%d%n最少银行存款余额是:%f%n,最多银行存款余额是:%f%n,以及平均银行存款余额是:%f%n”

vc.get value,minBalance.getValue,maxBalance.getvalue,avgBalance.getvalue())  

2、执行看一下结果

image.png

这个结果既包括男性也包括女性。

3、加一个条件,结果就只包括女性

 //1查询

SearchResponse response= client.prepareSearch

( …indices :“bank”)

.setTypes("account”)

//所有的女性的账户总数

.setQuery(QueryBuilders.termQuery(name:”gender.keyword,”value:”F”)

再来执行一下

image.png

相关文章
|
Linux Shell 数据安全/隐私保护
Linux配置代理请求
Linux配置代理请求
389 0
|
机器学习/深度学习 编解码 自然语言处理
全新AFPN出现 | 完胜PAFPN,堪称YOLO系列的最佳搭档
全新AFPN出现 | 完胜PAFPN,堪称YOLO系列的最佳搭档
578 0
|
Java 数据安全/隐私保护
|
8月前
|
缓存 IDE 开发工具
Flutter Demo 的快速编译与运行
Flutter Demo 的快速编译与运行
298 15
|
10月前
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
562 0
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
|
NoSQL 搜索推荐 关系型数据库
MongoDB的就业前景非常广阔
MongoDB的就业前景非常广阔
347 2
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
295 2
|
调度 开发者 Python
探索Python中的异步编程:从asyncio到Trio
在这个快节奏的技术世界里,Python的异步编程正变得越来越重要。本文将带你深入Python的异步编程世界,从asyncio的基础用法,到Trio的高级特性,我们将一探究竟。准备好,让我们一起揭开Python异步编程的神秘面纱。
|
XML 定位技术 数据格式
ENVI感兴趣区(ROI)文件由XML格式转换为ROI格式的方法
ENVI感兴趣区(ROI)文件由XML格式转换为ROI格式的方法
546 1
|
弹性计算 安全 关系型数据库
阿里云服务器镜像类型及区别参考(公共镜像、镜像市场、自定义镜像等)
阿里云服务器镜像包括公共镜像、镜像市场、自定义镜像、社区镜像、共享镜像,镜像可以满足各类型用户对于应用环境的快速部署、灵活管理的需求。
1600 0