当前位置: 首页 > news >正文

ES实战-聚集

根据某字段值聚集返回统计数据

#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"}}}
}

相关文章:

  • Rust基础拾遗--辅助功能
  • 惠普打印机驱动安装
  • 项目第一次git commit后如何撤销
  • JS进阶——垃圾回收机制以及算法
  • 【数学建模】【2024年】【第40届】【MCM/ICM】【B题 搜寻潜水器】【解题思路】
  • Rust 学习笔记 - 变量声明与使用
  • 用C语言列出Linux或Unix上的网络适配器
  • 5.9 BCC工具之nodejs_http_server.py简介
  • [前端开发] 常见的 HTML CSS JavaScript 事件
  • aiofiles:解锁异步文件操作的神器
  • Unity类银河恶魔城学习记录7-6 P72 Bouncy sword源代码
  • LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT
  • 树与二叉树---数据结构
  • bat脚本 创建计划任务 一分钟设置ntp同步周期为60s
  • Gin框架: 快速搭建起一个Web应用环境及处理不同类型的响应
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Git同步原始仓库到Fork仓库中
  • Gradle 5.0 正式版发布
  • JavaScript的使用你知道几种?(上)
  • Java深入 - 深入理解Java集合
  • JAVA之继承和多态
  • JS变量作用域
  • log4j2输出到kafka
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 记一次用 NodeJs 实现模拟登录的思路
  • 简单实现一个textarea自适应高度
  • 看域名解析域名安全对SEO的影响
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何胜任知名企业的商业数据分析师?
  • 入门到放弃node系列之Hello Word篇
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 最近的计划
  • ​Spring Boot 分片上传文件
  • ​学习一下,什么是预包装食品?​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • (1)Nginx简介和安装教程
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (排序详解之 堆排序)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)iOS字体
  • // an array of int
  • /etc/fstab 只读无法修改的解决办法
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [20190401]关于semtimedop函数调用.txt
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [CISCN2019 华东南赛区]Web11
  • [CQOI 2011]动态逆序对
  • [daily][archlinux][game] 几个linux下还不错的游戏
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [GXYCTF2019]BabySQli1
  • [js] 正则表达式