ES实战-聚集
最编程
2024-02-18 07:00:57
...
根据某字段值聚集返回统计数据
#curl 写法
curl 'localhost:9200/get-together/_search?pretty' -H 'Content-Type:application/json' -d '{
"aggs":{
"top_tags":{
"terms":{
"field":"tags.verbatim"
}
}
}}'
# kibana主体写法
GET /get-together/_search
{
"aggs": {
"top_tags": {
"terms": {
"field": "tags.verbatim"
}
}
}
}
Elasticsearch提供了多种聚合类型,用于不同的分析目的
1.terms聚合-适用于统计字段值的分布情况
2.avg:计算平均值。
3.sum:计算总和。
4.min和max:找到最小值和最大值。
5.histogram:按照数值区间分桶。
6.date_histogram:按照时间间隔分桶。
7.range:基于预定义的范围分桶。
8.cardinality:计算字段的基数(不同值的数量)。
等等。
在指定查询条件情况下聚合
GET /get-together/_search
{
"query": {
"match": {
"name":"Denver"
}
},
"aggs": {
"top_tags": {
"terms": {
"field": "tags.verbatim"
}
}
}
}
聚合某个数组类型的字段
#其中的stats 还可以换成avg min max sum value_count
GET /get-together/_search?pretty
{
"size": 0,
"aggs": {
"attendees_stats": {
"stats": {
"script": {
"source": "doc['attendees'].size()"
}
}
}
}
}
#使用extended_stats 聚合获取平方,方差,标准差
GET /get-together/_search?pretty
{
"size": 0,
"aggs": {
"attendees_stats": {
"extended_stats": {
"script": {
"source": "doc['attendees'].size()"
}
}
}
}
}
Percentiles 聚合
#percentiles聚合用于计算一个字段的百分位数,可以帮助你了解数据的分布。
GET /_search
{
"aggs": {
"grade_percentiles": {
"percentiles": {
"field": "grade",
"percents": [25, 50, 75] // 可以指定需要的百分位数
}
}
}
}
Percentile Ranks 聚合
#percentile_ranks聚合显示了值在数据分布中的排名百分位。
GET /_search
{
"aggs": {
"grade_percentile_ranks": {
"percentile_ranks": {
"field": "grade",
"values": [60, 70, 80] // 你想知道这些值的百分位排名
}
}
}
}
Cardinality 聚合
#cardinality聚合用于计算字段中不同值的数量,类似于SQL中的COUNT(DISTINCT field)。
GET /_search
{
"aggs": {
"unique_grades": {
"cardinality": {
"field": "grade"
}
}
}
}
推荐阅读
-
企业级项目实战品达物流TMS(资料齐全)SpringCloud+SpringBoot+Vue+Mybatis-Plus+Docker19套JAVA企业级大型项目实战前后端分离/微服务/云原生/分布式/高并发/高可用/中间平台策略项目架构、百亿级项目实战、金融项目实战JAVA项目、物联网项目、项目面试实战、秒杀项目实战、租房项目实战、在线教育项目实战、权限系统实战、股票交易项目、短信平台实战、房源平台项目实战、工作流项目实战。
-
分布式秒数实战订单数据分割表
-
ES UpdateByQuery Java Api
-
ES6 JS 防抖动节流实现
-
安装 vscode 基本配置、es6 基本语法。
-
人像抠像 + OpenGL ES 可以这样玩?我不知道有这种可能。
-
Python实战+抽奖】本文档针对没有1024邀请码的你,抽奖结束送福利
-
最完整的 JavaScript 新功能指南:ES2024 ~ ES2016
-
ES6 链式判断运算符 (?...) 和 Null 判断运算符 (???)
-
用于物联网应用和设计的高性价比载波通信模块 ES1642-C