IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ElasticSearch 开发学习:聚合概念 -> 正文阅读

[大数据]ElasticSearch 开发学习:聚合概念

ElasticSearch 开发学习:聚合概念

参考文档

  • 中文参考文档: Elasticsearch: 权威指南 ? 聚合
  • 英文参考文档: Elasticsearch Guide [6.4] ? Aggregations

聚合

聚合 是由 指标 组成的。通过聚合,我们可以得到一个数据的概览。聚合允许我们像数据提出一些复杂的问题。 Elasticsearch 中的聚合执行速度很快,像搜索一样几乎是实时的。所以对于报告和仪表盘来说,可以实时显示数据。

聚合和搜索是一起的,在单个请求里,可以同时对相同的数据进行搜索/过滤和分析。

要掌握聚合,只需要明白两个主要的概念:

  • (Buckets)

    满足特定条件的文档的集合

  • 指标(Metrics)

    对桶内的文档进行统计计算

这就是全部了!每个聚合都是 n >= 1 个桶 和 n >= 0 个指标的组合。参考2

当聚合开始被执行,每个文档里面的值通过计算来决定符合哪个条件的桶。如果匹配到,文档将放入相应的桶并接着进行聚合操作。

桶可以被嵌套在其他桶里面,提供层次化或者有条件的划分方案。例如,手机放入数码产品这个桶,数码产品放入商品这个桶。

Elasticsearch 有多种类型的桶,能够一多种方式划分文档(时间、年龄区间、地理位置)。根本原理都一样:基于条件划分文档。

指标

桶能让我们划分文档为有意义的集合,但我们最终需要的是对桶内的文档进行一些指标的计算。分桶是一种达到目的的手段:它提供
了一种给文档分组的方法,让我们可以计算感兴趣的指标。

大多数指标是简单的数学运算(例如最小值、平均值、最大值、还有汇总),这些是通过文档的值来计算。在实践中,可以用指标来
计算:平均薪资、最高出售价格等诸如此类的数据。

尝试聚合

聚合入门示例,参考官方中文文档尝试聚合

GET /cars/transactions/_search
{
    "size" : 0,
    "aggs" : { 
        "popular_colors" : { 
            "terms" : { 
              "field" : "color"
            }
        }
    }
}
  1. 聚合操作被置于顶层参数 aggs 之下(aggregations 也可以)。
  2. 为聚合指定一个名称: popular_colors 。
  3. 定义单个桶的类型 terms 。

聚合是在特定搜索结果背景下执行的,它是查询请求 /_search 的一个顶层参数。聚合可以与查询一起使用。

将size 设置为 0 来提高查询速度,因为我们并不关心搜索结果的具体内容。

“popular_colors” 是我们给聚合定义的名字,相应的结果会以我们定义的名字为标签。

在本例中,我们定义了一个单 terms 桶,这个 terms 桶会为每个碰到的唯一词项动态创建新的桶。因为我们
告诉它使用 color 字段,所以 terms 桶会为每个颜色动态创建新桶。

聚合结果:

{
...
   "hits": {
      "hits": [] 
   },
   "aggregations": {
      "popular_colors": { 
         "buckets": [
            {
               "key": "red", 
               "doc_count": 4 
            },
            {
               "key": "blue",
               "doc_count": 2
            },
            {
               "key": "green",
               "doc_count": 2
            }
         ]
      }
   }
}
  1. 因为设置了 size 参数,所以不会有 hits 搜索结果返回
  2. popular_colors 聚合是作为 aggregations 字段的一部分被返回的。
  3. 每个桶的 key 都与 color 字段里找到的唯一词对应。它总会包含 doc_count 字段,告诉我们包含该词项的文档数量。
  4. 每个桶的数量代表该颜色的文档数量。

响应包含多个桶,每个对应一个唯一颜色(例如:红 或 绿)。每个桶也包括 聚合进 该桶的所有文档的数量。例如,有四辆红色的车。
前面的这个例子完全是实时执行的:一旦文档可以被搜到,它就能被聚合。这也就意味着我们可以直接将聚合的结果源源不断的传入图形库,然后生成实时的仪表盘。 不久,你又销售了一辆银色的车,我们的图形就会立即动态更新银色车的统计信息。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:07:10  更:2021-08-19 12:08:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:49:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码