## 分析与汇总结果
Elasticsearch聚合使您能够获取有关搜索结果的元信息,并回答诸如“德克萨斯州有多少个帐户持有人”之类的问题。或“田纳西州的平均帐户余额是多少?”您可以在一个请求中搜索文档,过滤命中并使用汇总分析结果。
例如,以下请求使用`terms`汇总将`bank`索引中的所有帐户按状态分组,并按降序返回帐户数量最多的十个州:
~~~
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword"
}
}
}
}
~~~
这个`buckets`响应中的是的值`state`字段中。该`doc_count`节目在每个州帐户数量。例如,您可以看到`ID`(爱达荷州)有27个帐户。因为请求set`size=0`,所以响应仅包含聚合结果。
~~~
{
"took": 29,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped" : 0,
"failed": 0
},
"hits" : {
"total" : {
"value": 1000,
"relation": "eq"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"group_by_state" : {
"doc_count_error_upper_bound": 20,
"sum_other_doc_count": 770,
"buckets" : [ {
"key" : "ID",
"doc_count" : 27
}, {
"key" : "TX",
"doc_count" : 27
}, {
"key" : "AL",
"doc_count" : 25
}, {
"key" : "MD",
"doc_count" : 25
}, {
"key" : "TN",
"doc_count" : 23
}, {
"key" : "MA",
"doc_count" : 21
}, {
"key" : "NC",
"doc_count" : 21
}, {
"key" : "ND",
"doc_count" : 21
}, {
"key" : "ME",
"doc_count" : 20
}, {
"key" : "MO",
"doc_count" : 20
} ]
}
}
}
~~~
您可以组合聚合以构建更复杂的数据汇总。例如,以下请求将一个`avg`聚合嵌套在先前的`group_by_state`聚合中,以计算每个状态的平均帐户余额。
~~~
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword"
},
"aggs": {
"average_balance": {
"avg": {
"field": "balance"
}
}
}
}
}
}
~~~
您可以通过指定`terms`聚合内的顺序来使用嵌套聚合的结果进行排序,而不是按计数对结果进行排序:
~~~
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword",
"order": {
"average_balance": "desc"
}
},
"aggs": {
"average_balance": {
"avg": {
"field": "balance"
}
}
}
}
}
}
~~~
除了这些基本的存储桶和指标聚合外,Elasticsearch还提供了专门的聚合,用于在多个字段上操作并分析特定类型的数据,例如日期,IP地址和地理数据。您还可以将单个聚合的结果馈送到管道聚合中,以进行进一步分析。
聚合提供的核心分析功能可启用高级功能,例如使用机器学习来检测异常。
- Elasticsearch简介
- 数据输入:文档和索引
- 信息输出:搜索和分析
- 可扩展性和弹性
- Elasticsearch入门
- 启动并运行Elasticsearch
- 索引文件
- 开始搜索
- 使用汇总分析结果
- 从这里开始
- 设置Elasticsearch
- 安装Elasticsearch
- 从Linux或MacOS上的存档安装Elasticsearch
- 在Windows上安装Elasticsearch
- 使用Debian软件包安装Elasticsearch
- 使用RPM安装Elasticsearch
- 使用Windows MSI安装程序安装Elasticsearch
- 使用Docker安装Elasticsearch
- 使用Homebrew在macOS上安装Elasticsearch
- 配置Elasticsearch
- 设置JVM选项
- 安全设定
- 记录配置
- 审核设置
- 跨集群复制设置
- 转换设定
- 索引生命周期管理设置
- 许可设置
- 机器学习设置
- 监控设定
- 保护设置
- SQL访问设置
- 观察者设置
- 重要的Elasticsearch配置
- path.data 和 path.logs
- cluster.name
- node.name
- network.host
- 发现和集群形成设置
- 设置堆大小
- JVM堆转储路径
- GC记录
- 临时目录
- JVM致命错误日志
- 重要系统配置
- 配置系统设置
- 禁用交换
- 文件描述符
- 虚拟内存
- 线程数
- DNS缓存设置
- JNA临时目录未装入 noexec
- 引导检查
- 堆大小检查
- 文件描述符检查
- 内存锁检查
- 最大线程数检查
- 最大文件大小检查
- 虚拟内存最大大小检查
- 最大地图计数检查
- 客户端JVM检查
- 使用串行收集器检查
- 系统调用过滤器检查
- OnError和OnOutOfMemoryError检查
- 抢先检查
- G1GC检查
- 所有权限检查
- 发现配置检查
- 启动Elasticsearch
- 停止Elasticsearch
- 将节点添加到集群
- 全集群重启和滚动重启
- 设置X-Pack
- 配置X-Pack Java客户端
- 引导程序检查X-Pack
- 升级Elasticsearch
- 滚动升级
- 完整集群重新启动升级
- 升级前重新索引
- 重新索引到位
- 从远程群集重新索引
- 集合
- 度量聚合
- 平均聚合
- 加权平均聚合
- 基数聚合
- 扩展统计汇总
- 地理边界聚合
- 地心聚集
- 最大聚集
- 最小集合
- 百分位数汇总
- 百分数排名汇总
- 脚本式指标聚合
- 统计汇总
- 字符串统计汇总
- 总和
- 热门合集
- 价值计数汇总
- 中位数绝对偏差汇总
- 桶聚合
- 邻接矩阵汇总
- 自动间隔日期直方图聚合
- 子集聚集
- 复合聚集
- 日期直方图汇总
- 日期范围汇总
- 多元化的采样器聚合
- 筛选器汇总
- 筛选汇总
- 地理距离汇总
- GeoHash网格聚合
- GeoTile网格聚合
- 全局聚合
- 直方图聚合
- IP范围汇总
- 缺少聚合
- 嵌套聚合
- 父级汇总
- 范围汇总
- rare terms 聚集
- 反向嵌套聚合
- 采样器聚合
- 重要术语汇总
- 重要的文字汇整
- 术语汇总
- 铲斗范围字段的精妙之处
- 管道聚合
- 平均存储桶聚合
- 导数聚合
- 最大存储桶聚合
- 最小存储桶聚合
- 总和桶聚合
- 统计数据桶汇总
- 扩展的统计数据桶聚合
- 百分位桶聚合
- 查询DSL
- 查询和过滤上下文
- 跨集群搜索
- 脚本编写
- 如何使用脚本
- 映射
- 删除映射类型
- 文字分析
- 文字分析总览
- 模组
- 发现和集群形成
- 索引模块
- 分析
- 摄取节点
- 管道定义
- 管理索引生命周期
- 索引总览
- SQL访问
- SQL总览
- 监控集群
- 监控总览
- 冻结指标
- 最佳实务
- 汇总或转换数据
- 汇总历史数据
- 设置集群以实现高可用性
- 备份集群
- 快照和还原
- 注册资料库
- 保护集群
- 安全概述
- 警报群集和索引事件
- Watcher入门
- 命令行工具
- 弹性搜索证书
- 如何
- 一般建议
- 专业术语
- REST API
- API约定
- 发布要点
- 7.6.0
- 重大变化
- 7.6
- 发行说明
- Elasticsearch版本7.6.2