当前位置:   article > 正文

ElasticSearch(7.2.2)-es聚合查询之指标聚合_es聚合查询 新排序 cardinality 返回对应值

es聚合查询 新排序 cardinality 返回对应值

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

ES聚合分析
  • 聚合分析是数据库中重要的功能特性,完成对⼀个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最⼤值、最⼩值,计算和、平均值等。ES作为搜索引擎兼数据库,同样提供了强⼤的聚合分析能⼒。
    对⼀个数据集求最⼤、最⼩、和、平均值等指标的聚合,在ES中称为指标聚合
  • ⽽关系型数据库中除了有聚合函数外,还可以对查询出的数据进⾏分组group by,再在组上
  • 进⾏指标聚合。在ES中称为桶聚合
max min sum avg
  • 求出⽕箭队球员的平均年龄
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"avgAge": {
			"avg": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
value_count 统计⾮空字段的⽂档数
  • 求出⽕箭队中球员打球时间不为空的数量
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"countPlayerYear": {
			"value_count": {
				"field": "playYear"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 查出⽕箭队有多少名球员
POST nba/_count
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Cardinality 值去重计数
  • 查出⽕箭队中年龄不同的数量
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"counAget": {
			"cardinality": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
stats 统计count max min avg sum 5个值
  • 查出⽕箭队球员的年龄stats
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"statsAge": {
			"stats": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
Extended stats ⽐stats多4个统计结果: 平⽅和、⽅差、标准差、平均值加/减两个标准差的区间
  • 查出⽕箭队球员的年龄Extend stats
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"extendStatsAge": {
			"extended_stats": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
Percentiles 占⽐百分位对应的值统计,默认返回[ 1, 5, 25, 50, 75, 95, 99 ]分位上的值
  • 查出⽕箭的球员的年龄占⽐
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}
	},
	"aggs": {
		"pecentAge": {
			"percentiles": {
				"field": "age"
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 查出⽕箭的球员的年龄占⽐(指定分位值)
POST /nba/_search
{
	"query": {
		"term": {
			"teamNameEn": {
				"value": "Rockets"
			}
		}

	},
	"aggs": {
		"percentAge": {
			"percentiles": {
				"field": "age",
				"percents": [
					20,
					50,
					75
				]
			}
		}
	},
	"size": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/778376
推荐阅读
相关标签
  

闽ICP备14008679号