前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch(7.2.2)-es聚合查询之指标聚合

ElasticSearch(7.2.2)-es聚合查询之指标聚合

作者头像
cwl_java
发布2019-11-03 12:42:51
2K0
发布2019-11-03 12:42:51
举报
文章被收录于专栏:cwl_Javacwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。undefined本文链接:https://blog.csdn.net/weixin_42528266/article/details/102805231

简介:⼿把⼿玩转es的聚合查询之指标聚合

ES聚合分析

  • 聚合分析是数据库中重要的功能特性,完成对⼀个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最⼤值、最⼩值,计算和、平均值等。ES作为搜索引擎兼数据库,同样提供了强⼤的聚合分析能⼒。 对⼀个数据集求最⼤、最⼩、和、平均值等指标的聚合,在ES中称为指标聚合
  • ⽽关系型数据库中除了有聚合函数外,还可以对查询出的数据进⾏分组group by,再在组上
  • 进⾏指标聚合。在ES中称为桶聚合

max min sum avg

  • 求出⽕箭队球员的平均年龄
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"avgAge": {
			"avg": {
				"field": "age"
			}
		}
	},
	"size": 0
}

value_count 统计⾮空字段的⽂档数

  • 求出⽕箭队中球员打球时间不为空的数量
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"countPlayerYear": {
			"value_count": {
				"field": "playYear"
			}
		}
	},
	"size": 0
}
  • 查出⽕箭队有多少名球员
代码语言:javascript
复制
POST nba/_count
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	}
}

Cardinality 值去重计数

  • 查出⽕箭队中年龄不同的数量
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"counAget": {
			"cardinality": {
				"field": "age"
			}
		}
	},
	"size": 0
}

stats 统计count max min avg sum 5个值

  • 查出⽕箭队球员的年龄stats
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"statsAge": {
			"stats": {
				"field": "age"
			}
		}
	},
	"size": 0
}

Extended stats ⽐stats多4个统计结果: 平⽅和、⽅差、标准差、平均值加/减两个标准差的区间

  • 查出⽕箭队球员的年龄Extend stats
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"extendStatsAge": {
			"extended_stats": {
				"field": "age"
			}
		}
	},
	"size": 0
}

Percentiles 占⽐百分位对应的值统计,默认返回 1, 5, 25, 50, 75, 95, 99 分位上的值

  • 查出⽕箭的球员的年龄占⽐
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"pecentAge": {
			"percentiles": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 查出⽕箭的球员的年龄占⽐(指定分位值)
代码语言:javascript
复制
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}

	},
	"aggs": {
		"percentAge": {
			"percentiles": {
				"field": "age",
				"percents": [
					20,
					50,
					75
				]
			}
		}
	},
	"size": 0
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ES聚合分析
  • max min sum avg
  • value_count 统计⾮空字段的⽂档数
  • Cardinality 值去重计数
  • stats 统计count max min avg sum 5个值
  • Extended stats ⽐stats多4个统计结果: 平⽅和、⽅差、标准差、平均值加/减两个标准差的区间
  • Percentiles 占⽐百分位对应的值统计,默认返回 1, 5, 25, 50, 75, 95, 99 分位上的值
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档