带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(12)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(12)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.21.Aggregations(11) https://developer.aliyun.com/article/1229229


四、指标聚合和桶聚合的混合使用

 

例子1

 

例如我们需要统计产品价格的分布情况以及每个分布区间的平均值,此时需要使用直方图聚合和平均值聚合进行统计:

 

GET order/_search
{ 
  "aggs": {
    "my_histogram": {
      "histogram": {
        "field": "price",
        "interval": 1000
      },
      "aggs": {
        "avg_bucket": {
          "avg": {
            "field": "price"
          }
        }
      }     
    }
  }
}
//聚合结果
{
......
"aggregations" : {
    "my_histogram" : {
      "buckets" : [
        {
          "key" : 7000.0,
          "doc_count" : 2,
          "avg_bucket" : {
            "value" : 7924.51
          }
        },
        {
          "key" : 8000.0,
          "doc_count" : 2,
          "avg_bucket" : {
            "value" : 8676.869999999999
          }
        },
        {
          "key" : 9000.0,
          "doc_count" : 2,
          "avg_bucket" : {
            "value" : 9987.77
          }
        }
      ]
    }
  }
}

例子2

 

获取每个销售的最高销售额,我们可以以销售最为分组的依据后,再获取每个分组中的最大销售额:

GET order/_search?size=0
{
    "aggs" : {
        "sales" : {
            "terms": {
              "field": "sales_name"
            },
            "aggs": {
              "max_price": {
                "max": {
                  "field": "price"
                }
              }
            }
        }
    }
}

返回结果:

 

{
  ...
  "aggregations" : {
    "sales" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 3970,
      "buckets" : [
        {
          "key" : "Lucas",
          "doc_count" : 641,
          "max_price" : {
            "value" : 1800000.0
          }
        },
        {
          "key" : "Seven",
          "doc_count" : 620,
          "max_price" : {
            "value" : 1800000.0
          }
        },
        {
          "key" : "Jack",
          "doc_count" : 615,
          "max_price" : {
            "value" : 1800000.0
          }
        }
      ]
    }
  }
}

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.21.Aggregations(13) https://developer.aliyun.com/article/1229225

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(11)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(11)
106 0
|
存储 SQL 数据挖掘
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(1)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(1)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(2)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(2)
|
存储 索引
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(9)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(9)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(8)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(8)
106 0
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(3)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(3)
|
存储 算法 索引
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(4)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(4)
|
资源调度
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(7)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(7)
|
存储 自然语言处理 关系型数据库
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(14)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(14)
|
数据可视化 索引
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(13)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(13)