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

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

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


6、管道聚合 pipeline

 

1)基础用法

 

Elasticsearch 通过管道聚合支持对聚合分析的结果进行再次聚合分析。大多数管道聚合需要另一个聚合作为它的输入,输入聚合通过 bucket_path 参数定义:


l 聚合分隔符为 >

l 指标分隔符为 .

l 聚合名为<聚合的名称>

l 指标为<聚合的指标>

l 路径为<聚合名>[<聚合分隔符><聚合名>]*[<指标分隔符><指标>]

 

例如:路径 "mybucket>myavg",会将 myavg 中的平均值指标作为 mybucket 分组聚合的输入。

 

pipeline 分析的结果会输出到原结果进行汇总,根据位置的不同分为两类:

 

Sibling 兄弟聚合,结果和现有分析结果同级。例如:Max,Min,Avg 及 Sum Bucket

Stats, Extened Status Bucket,Percentiles Bucket。

 

Parent 父类聚合,结果内嵌到现有的聚合分析结果之中。例如:Derivative(求导)、Cumultive Sum(累计求和)、Moving Function(滑动窗口)。

 

2)Sibling 兄弟聚合

 

Sibling 兄弟聚合:例如要对每个品牌的平均售价再求平均,在下面我们的 buckets_path 定义为一个从 aggs 根开始的一个完整的父聚合的路径。我们通过其名为 terms_bucket 的父聚合terms,引用了名为 avg_bucket 的同级聚合。 因此,目标汇总的完整路径为terms_bucket>avg_bucket。

 

GET order/_search
{
  "aggs": {
    "terms_bucket": {
      "terms": {
        "field": "brand",
        "size": 3
      },
      "aggs": {
        "avg_bucket": {
          "avg": {
            "field": "price"
          }
        }
      }    
    },
    "avgofbrandprice":{
      "avg_bucket": {
        "buckets_path": "terms_bucket>avg_bucket"
      }
    }
  }
}
//聚合结果
{
......
"aggregations" : {
    "terms_bucket" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "HUAWEI",
          "doc_count" : 4,
          "avg_bucket" : {
            "value" : 8734.25
          }
        },
        {
          "key" : "Apple",
          "doc_count" : 3,
          "avg_bucket" : {
            "value" : 8991.85
          }
        }
      ]
    },
    "avgofbrandprice" : {
      "value" : 8863.05
    }
  }
}

3)Parent 父类聚合

 

Parent 父类聚合:例如根据产品价格做直方图统计,在每个统计桶中做平均值得累加和统计

 

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

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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
916 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2883 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
Python
Python懒羊羊
Python懒羊羊
437 0
|
Kubernetes 安全 数据安全/隐私保护
在K8S上部署可扩展的基于Occlum的安全推理实例
机密计算是指通过在基于硬件的可信执行环境(TEE)中执行计算来保护数据应用中的隐私安全,是目前最火热的隐私保护技术之一。在云上运行TEE应用也得到了云厂商的广泛支持,包括阿里云,微软Azure云,都提供了基于SGX技术的机密安全实例服务。用户可以在这些云上申请带SGX支持的安全实例,然后部署自己的机密安全服务,既可以避免隐私数据泄露,也无需操心繁琐的基础架构层的配置。无论哪种云,最流行的分布式部署
在K8S上部署可扩展的基于Occlum的安全推理实例
|
Kubernetes 物联网 数据中心
大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad
大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad
|
4月前
|
人工智能 并行计算 机器人
未来人工智能如何重构”时间“?
时间是数学还是幻觉?从熵增到几何,从人类意识到AI智能,本文探讨时间的本质。线性、循环与拓扑模型揭示其多维可能;热力学箭头与认知局限引发哲学思辨;而AI的并行预测与信息压缩,或将重构时间本身。未来智能或不再线性行走,而是编织多维时间之网,重塑我们对存在的理解。(238字)
231 0
|
Java Spring
解决Spring工具类BeanUtils copyProperties方法复制null的问题
解决Spring工具类BeanUtils copyProperties方法复制null的问题
1459 0
|
开发框架 安全 .NET
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-1):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-1):渗透测试行业术语扫盲)作者——LJS
|
机器学习/深度学习 人工智能 自然语言处理
智能语音助手的技术演进与未来趋势####
【10月更文挑战第16天】 智能语音助手,作为人工智能领域的璀璨明珠,正以前所未有的速度融入我们的生活。本文旨在探索这一技术奇迹背后的奥秘,从最初的简单命令响应,到如今能够理解复杂语境、提供个性化服务的高阶智能体,智能语音助手的发展历程见证了技术进步的非凡成就。我们将深入剖析其核心技术原理,包括自然语言处理(NLP)、语音识别与合成、深度学习等,同时展望未来,探讨在物联网、医疗健康、教育等多个领域潜在的革命性应用。这不仅是一篇技术解读,更是对智能时代生活方式变革的一次深刻洞察。 ####
852 6

热门文章

最新文章