`

Elasticsearch 聚合 - 创建条形图(Bar Chart)

阅读更多

原文链接:http://blog.csdn.net/dm_vincent/article/details/42539391

 

创建条形图(Building Bar Charts)

聚合的一个令人激动的性质是它能够很容易地被转换为图表和图形。在本章中,我们会使用前面的样本数据集来创建出各种分析案例。我们也会展示聚合能够支持的种类。

柱状图桶(Histogram Bucket)非常有用。柱状图在本质上就是条形图,如果你创建过一份报告或者分析面板(Analytics Dashboard),毫无疑问其中会有一些条形图。柱状图通过指定一个间隔(Interval)来工作。如果我们使用柱状图来表示销售价格,你或许会指定一个值为20000的间隔。因此每20000美刀会创建一个桶。然后文档会被分配到桶中。

对于我们的仪表板,我们想要知道每个价格区间中有多少辆车。同时我们也想知道该价格桶中产生了多少收入。这是通过将该间隔中所有的车的售价累加而计算得到的。

为了达到这一目的,我们使用了一个histogram类型的聚合然后在其中嵌套了一个sum指标:

GET /cars/transactions/_search?search_type=count
{
   "aggs":{
      "price":{
         "histogram":{ 
            "field": "price",
            "interval": 20000
         },
         "aggs":{
            "revenue": {
               "sum": { 
                 "field" : "price"
               }
             }
         }
      }
   }
}

正如你能看到的那样,我们的查询是围绕着价格聚合而建立的,该聚合包含了一个柱状图桶。该桶需要一个数值字段以及一个间隔值来进行计算。间隔用来定义每个桶有“多宽”。间隔为20000意味着我们能够拥有区间[0-19999, 20000-39999, 等]。

接下来,我们在柱状图中定义了一个嵌套的指标。它是一个sum类型的指标,会将该区间中的文档的price字段进行累加。这就得到了每个价格区间中的收入,因此我们就能够从中看出是普通车还是豪华车赚的更多。

以下是得到的响应:

{
...
   "aggregations": {
      "price": {
         "buckets": [
            {
               "key": 0,
               "doc_count": 3,
               "revenue": {
                  "value": 37000
               }
            },
            {
               "key": 20000,
               "doc_count": 4,
               "revenue": {
                  "value": 95000
               }
            },
            {
               "key": 80000,
               "doc_count": 1,
               "revenue": {
                  "value": 80000
               }
            }
         ]
      }
   }
}

The response is fairly self-explanatory, but it should be noted that the histogram keys correspond to the lower boundary of the interval. The key 0 means 0-19,999, the key 20000 means 20,000-39,999, and so forth. 响应是能够对其意义进行解释的,但是值得注意的是histogram键对应的是间隔的下边界。键值0表示的是0-19999,键值20000表示的是20000-39999,以此类推。

NOTE 缺失了空桶

你也许会注意到40000-60000美刀这一个间隔没有出现在响应中。histogram桶默认会省略它,因为包含空桶可能会造成输出过大,而这可能并不是我们想要的结果。

在下一节中我们会讨论如何包含空桶,返回空桶

从图形上,你可以将前面的数据表示如下:

当然,你可以使用任何生成类别和统计信息的聚合来创建条形图,并不仅限于使用histogram桶。让我们创建一个受欢迎的汽车制造商的条形图,其中包含了它们的平均价格和标准误差(Standard Error)。需要使用的而是terms桶以及一个extended_stats指标:

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "makes": {
      "terms": {
        "field": "make",
        "size": 10
      },
      "aggs": {
        "stats": {
          "extended_stats": {
            "field": "price"
          }
        }
      }
    }
  }
}

它会返回一个制造商列表(根据受欢迎程度排序)以及针对每个制造商的一些列统计信息。其中,我们对stats.avg,stats.count以及stats.std_deviation感兴趣。有了这一信息,我们能够计算出标准误差:

std_err = std_deviation / count

得到的图形如下所示:

 
分享到:
评论

相关推荐

    7.17.1系列Elasticsearch的elasticsearch-analysis-ik分词器

    适用于7.17.1系列,例如Elasticsearch的7.17.12版本。 elasticsearch-analysis-ik 是一个常用的中文分词器,在 Elasticsearch 中广泛应用于中文文本的分析和搜索。下面是 elasticsearch-analysis-ik 分词器的几个...

    最新版 elasticsearch-analysis-ik-8.7.0.zip

    最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip

    elasticsearch-analysis-ik-7.16.3.zip

    在现代大数据分析和搜索引擎领域,Elasticsearch(ES)因其高效、灵活的全文检索能力而备受青睐。然而,对于中文这样的多字节语言,如何准确地进行分词是关键。这时,我们就需要引入专门的中文分词器。本文将详细...

    elasticsearch-analysis-ik-7.10.0.zip下载

    在使用过程中,可以通过Elasticsearch的配置文件(如elasticsearch.yml)设置分词器参数,或者在创建索引时指定分词器类型。 总的来说,"elasticsearch-analysis-ik-7.10.0.zip"是Elasticsearch 7.10.0版的一个关键...

    elasticsearch-x-content-6.3.0-API文档-中文版.zip

    赠送jar包:elasticsearch-x-content-6.3.0.jar; 赠送原API文档:elasticsearch-x-content-6.3.0-javadoc.jar; 赠送源代码:elasticsearch-x-content-6.3.0-sources.jar; 赠送Maven依赖信息文件:elasticsearch-x...

    最新版elasticsearch-analysis-ik-8.8.2.zip

    最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip

    elasticsearch-analysis-dynamic-synonym-7.2.0

    Elasticsearch(ES)是一款功能强大的全文搜索引擎,广泛应用于数据检索、数据分析等领域。为了提高搜索的准确性和便利性,Elasticsearch提供了丰富的分析插件,其中"elasticsearch-analysis-dynamic-synonym-7.2.0...

    barchart-wrap-elasticsearch-all-0.20.4-build002.zip

    《Elasticsearch OSGi 包装:深入理解 barchart-wrap-elasticsearch-all-0.20.4-build002.zip》 Elasticsearch,一个高性能、分布式、全文搜索引擎,以其强大的搜索功能和易扩展性深受开发者喜爱。在开源项目领域,...

    elasticsearch-analysis-pinyin-7.17.24

    elasticsearch-analysis-pinyin-7.17.24

    elasticsearch-analysis-pinyin-7.4.0 es拼音分词器7.4.0

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于大数据领域的全文检索。它以其高可扩展性、实时性能以及丰富的分析能力著称。在中文环境下,由于汉字的复杂性,分词是实现有效搜索的关键步骤。为此,...

    Jieba中文分词插件elasticsearch-jieba-plugin.zip

    使用checkout tag: v5.1.2git checkout v5.1.2运行gradle buildPluginZip创建 directory ${path.home}/plugins/jieba复制zip 文件到分词插件cp build/distributions/elasticsearch-jieba-plugin-5.1.2.zip ${...

    elasticsearch-HQ-master.zip

    Elasticsearch本身是一种开源的全文搜索引擎,广泛应用于大数据分析、日志聚合、实时搜索等领域。它的分布式特性使得它可以轻松扩展到数百甚至数千个节点,形成大规模的集群。然而,随着集群规模的扩大,管理和维护...

    最新版elasticsearch-analysis-ik-8.8.1.zip

    最新版elasticsearch-analysis-ik-8.8.1.zip最新版elasticsearch-analysis-ik-8.8.1.zip最新版elasticsearch-analysis-ik-8.8.1.zip最新版elasticsearch-analysis-ik-8.8.1.zip

    elasticsearch-6.8.0+elasticsearch-analysis-ik-6.8.0 .zip

    通过添加依赖,可以轻松创建 Elasticsearch 的客户端,实现索引的创建、文档的增删改查以及复杂的查询操作。Spring Data 提供的注解使得操作 Elasticsearch 如同操作数据库一样简单,提高了开发效率。 **搜索引擎的...

    elasticsearch-analysis-ik-7.16.2.zip

    《Elasticsearch分词器:elasticsearch-analysis-ik-7.16.2深度解析》 在信息爆炸的时代,搜索引擎的效能成为了数据检索的关键。Elasticsearch作为一款强大的开源搜索引擎,其灵活性和可扩展性备受青睐。而在中文...

    elasticsearch-analysis-dynamic-synonym-7.6.2

    Elasticsearch(ES)作为一款强大的全文搜索引擎,同样支持对同义词的处理。`elasticsearch-analysis-dynamic-synonym-7.6.2`是一个专为ES7.6.2版本设计的动态同义词插件,旨在实现同义词的动态加载和管理,使得同义...

    elasticsearch-jieba-plugin 8.8.2.zip

    `elasticsearch-jieba-plugin`正是将jieba分词库与Elasticsearch进行了深度融合,使得ES在处理中文文本时能展现出卓越的性能。 安装此插件的过程简单明了。首先,下载`elasticsearch-jieba-plugin 8.8.2.zip`压缩包...

    elasticsearch-analysis-ik-7.10.2.zip

    Elasticsearch(ES)作为一个开源的全文搜索引擎,因其强大的搜索功能和分布式特性而备受青睐。然而,对于中文这种复杂的语言,分词是搜索引擎理解文本的关键步骤。本文将详细介绍elasticsearch-analysis-ik-7.10.2...

    elasticsearch-jdbc-2.3.3.0-dist.zip

    1. **配置JDBC River**: 在Elasticsearch中创建一个名为"river"的特殊索引类型,用于定义数据源和导入规则。配置包括数据库URL、用户名、密码、表名以及映射到Elasticsearch字段的信息。 2. **启动数据流**: 启动...

    elasticsearch-analysis-ik-7.3.2.zip

    Elasticsearch(ES)作为一个强大的全文搜索引擎,其在处理中文文档时,对中文分词的准确性和效率有着至关重要的作用。"elasticsearch-analysis-ik"是ES中最受欢迎的中文分词器之一,专为提升中文文本分析性能而设计...

Global site tag (gtag.js) - Google Analytics