博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch学习---聚合查询之Metric Aggregations
阅读量:2492 次
发布时间:2019-05-11

本文共 2972 字,大约阅读时间需要 9 分钟。

前言

Elasticsearch除搜索以外,还提供了针对数据统计分析的功能,通过各种API可以构建数据的复杂查询,不同类型的聚合查询都有自己的目的和输出,为了更好的理解这些类型,人们通常又会把它们分为三大类。

聚合类型三大类

每个桶都与一个键和一个文档标准相关联,通过桶的聚合查询,我们将得到一个桶的列表,即:满足条件的文档集合。

计算一组文档的某些指标项的聚合

对其他聚合的输出或相关指标进行二次聚合

Metric Aggregations

Avg Aggregation

用于计算文档中数值的平均值,只能对数值类型的进行计算

GET /kibana_sample_data_flights/_search{
"aggs": {
"avg_AvgTicketPrice": {
"avg": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

同样支持脚本

GET /kibana_sample_data_flights/_search{
"aggs": {
"avg": {
"avg": {
"script": {
"source": "doc.AvgTicketPrice.value" } } } }}

在这里插入图片描述

对结果乘以100

GET /kibana_sample_data_flights/_search{
"aggs": {
"avg": {
"avg": {
"field": "AvgTicketPrice", "script": {
"lang": "painless", "source": "_value * params.correction", "params": {
"correction":100 } } } } }}

在这里插入图片描述

Cardinality Aggregation

对不同值进行统计计算,类似于sql中的 distinct 后进行count,去重求和。

查询目的地国家的种类

POST kibana_sample_data_flights/_search{
"aggs": {
"dest_count": {
"cardinality": {
"field": "DestCountry" } } }}

在这里插入图片描述

Stats Aggregation

统计聚合,返回的统计数据包括:min,max,sum,count和avg。

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"multi_stats": {
"stats": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

Extended Stats Aggregation

扩展统计聚合,包含了多种指标的聚合信息

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"multi_stats": {
"extended_stats": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

Max Aggregation

计算文档中数值的最大值

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"max_ticket": {
"max": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

Min Aggregation

同样可以计算最小值

在这里插入图片描述

Percentiles Aggregation

用于计算从文档中提取数值的一个或多个百分位数,默认百分位数范围[1,5,25,50,75,95,99]

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"AvgTicketPrice": {
"percentiles": {
"field": "AvgTicketPrice", "percents": [ 1, 5, 25, 50, 75, 95, 99 ] } } }}

在这里插入图片描述

可以看到,99%的票价低于1166,95%票价低于1035,50%票价低于640

Percentile Ranks Aggregation

百分位排名聚合查询

从以下查询,可以看出100%的票价低于1200,93%的票价低于1000。

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"AvgTicketPrice": {
"percentile_ranks": {
"field": "AvgTicketPrice", "values": [1000,1200] } } }}

在这里插入图片描述

Sum Aggregation

汇总文档中提取的数值

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"sum_price": {
"sum": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

Value Count Aggregation

用于计算从聚合文档中提取的值的数量

GET /kibana_sample_data_flights/_search{
"size": 0, "aggs": {
"value_count": {
"value_count": {
"field": "AvgTicketPrice" } } }}

在这里插入图片描述

文档总数就是13059,说明每个文档都有AvgTicketPrice值

在这里插入图片描述

转载地址:http://delrb.baihongyu.com/

你可能感兴趣的文章
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>
Maven:mirror和repository 区别
查看>>
微服务网关 Spring Cloud Gateway
查看>>
SpringCloud Feign的使用方式(一)
查看>>
SpringCloud Feign的使用方式(二)
查看>>
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
查看>>
Vue 路由懒加载根据根路由合并chunk块
查看>>
vue中 不更新视图 四种解决方法
查看>>
MySQL 查看执行计划
查看>>
OpenGL ES 3.0(四)图元、VBO、VAO
查看>>
OpenGL ES 3.0(五)纹理
查看>>
OpenGL ES 3.0(八)实现带水印的相机预览功能
查看>>
OpenGL ES 3.0(九)实现美颜相机功能
查看>>
FFmpeg 的介绍与使用
查看>>
Android 虚拟机简单介绍——ART、Dalvik、启动流程分析
查看>>
原理性地理解 Java 泛型中的 extends、super 及 Kotlin 的协变、逆变
查看>>
FFmpeg 是如何实现多态的?
查看>>