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

简介: 带你读《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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
数据库 索引
评论功能里数据库的设计
【4月更文挑战第2天】本文探讨了评论系统的树形结构设计,提出了四种方法:邻接表、分段式path、Nested Set和Closure Table。针对评论业务功能,如加载评论页和查看回复,优先考虑邻接表和分段式path。采用邻接表思路,设计了评论表结构,包括Uid、Biz、BizID、RootID、PID、Content、索引和级联删除规则。同时提到了索引设计,如Uid、Biz+BizID、PID和Ctime/Utime,以优化查询性能。
376 3
|
存储 JSON Shell
Grafana 系列文章(三):Tempo- 使用 HTTP 推送 Spans
Grafana 系列文章(三):Tempo- 使用 HTTP 推送 Spans
Grafana 系列文章(三):Tempo- 使用 HTTP 推送 Spans
|
存储 算法
数据仓库数据模型之:极限存储--历史拉链表
摘要: 在数据仓库的数据模型设计过程中,经常会遇到文内所提到的这样的需求。而历史拉链表,既能满足对历史数据的需求,又能很大程度的节省存储资源。 在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较大;2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等;3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的
5877 0
|
移动开发 JavaScript Oracle
Oracle根据汉字取拼音首字母的function
Oracle根据汉字取拼音首字母的function
8325 0
|
9月前
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
|
自然语言处理 搜索推荐 数据可视化
2024高效年终总结:用看板工具和GRAI方法提升效率
本文介绍如何用看板管理帮助团队做出有亮点、有逻辑、有冲突、有方案的年终总结,并提供5种工作总结SOP模板,如GRAI复盘法、SCQA表达法等,使总结更有条理、更有说服力。
437 8
2024高效年终总结:用看板工具和GRAI方法提升效率
|
区块链
【智能合约】新版Remix编写实现第一个HelloWorld
【智能合约】新版Remix编写实现第一个HelloWorld
298 2
|
机器学习/深度学习 算法 C语言
5.2.1 Backbone(特征提取) 5.2.2 Neck(多尺度检测)
这篇文章介绍了YOLOv3目标检测模型中的Backbone(特征提取)部分,详细阐述了使用Darknet53作为骨干网络来提取图像特征的方法,并通过代码示例展示了如何实现Darknet53网络结构以及如何查看不同层级输出特征图的形状,同时还讨论了Neck(多尺度检测)的概念,解释了如何通过特征图的尺寸放大和融合来实现对不同尺寸目标的检测。

热门文章

最新文章