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

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

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


6、速率聚合 rate

 

速率聚合只能在 date_histogram 中使用,计算每个日期存储桶中的数据在日期粒度上的平均值。参与计算的字段可以为数值类型或者直方图类型。

 

1)基础用法

 

以年为区间划分存储桶,计算 price 字段的数量在月上的速率聚合:

 

首先插入不同年份的数据:


POST _bulk
{"index":{"_index":"order","_id":8}}
{"sales_name":"Cindy","product_name":"iphone11","brand":"Apple","count":20,"price":"8699.45","order_time":"2020-09-03"}
{"index":{"_index":"order","_id":9}}
{"sales_name":"Andy","product_name":"mate10","brand":"HUAWEI","count":22,"price":"9759.25","order_time":"2020-08-03"}
{"index":{"_index":"order","_id":10}}
{"sales_name":"Lily","product_name":"iphone12","brand":"Apple","count":25,"price":"7876.33","order_time":"2020-08-23"}

计算聚合:

GET order/_search?size=0
{
  "size": 0,
  "aggs": {
    "order_date": {
      "date_histogram": {
        "field": "order_time",
        "calendar_interval": "year"  
      },
      "aggs": {
        "price_rate": {
          "rate": {
            "field": "price",
            "unit": "month" ,
            "mode" : "value_count"
          }
        }
      }
    }
  }
}

l order_date,price_rate 自定义名称,将在结果中返回

l calendar_interval 定义了数据文档划分的桶的时间粒度,此处定义为年粒度

l unit 定义了速率计算的粒度

l mode 定义了速率计算对数值字段处理的方式,默认为 sum 计算字段的和,此处为 value_count 计算字段的数量


返回结果: 

{
  ...
  "aggregations" : {
    "order_date" : {
      "buckets" : [
        {
          "key_as_string" : "2020-01-01T00:00:00.000Z",
          "key" : 1577836800000,
          "doc_count" : 3,
          "price_rate" : {
            "value" : 0.25
          }
        },
        {
          "key_as_string" : "2021-01-01T00:00:00.000Z",
          "key" : 1609459200000,
          "doc_count" : 7,
          "price_rate" : {
            "value" : 0.5
          }
        }
      ]
    }
  }
}

value 的计算方法为 rate 字段的和/数量除以 rate 日期单位的值。以上面的第一个 0.25 的结果为例,计算出 2020 年的订单数量为 3 后,再除以一年中的月份数量 12。

 

2)分桶的时间区间如何与rate中的时间单位配合使用


image.png

如果 date_histogram 不是rate histogram 的直接父级,则还有其他限制。此时,rate 时间间隔和 date_histogram 时间间隔必须位于同一组:[second、minute、hour、day、week] 或 [month、quarter、year]。例如,如果 date_histogram 是基于 month 的,则 rate 只支持 month、quarter 或 year。

 

3)脚本

 

对产品售卖价格进行修改后,再进行聚合:


GET order/_search?size=0
{
  "runtime_mappings": {
    "price.adjusted": {
      "type": "double",
      "script": {
        "source": "emit(doc['price'].value * params.adjustment)",
        "params": {
          "adjustment": 0.8
        }
      }
    }
  },
  "aggs": {
    "rate_date": {
      "date_histogram": {
        "field": "order_time",
        "calendar_interval": "year"
      },
      "aggs": {
        "avg_price": {
          "rate": {
            "field": "price.adjusted",
            "unit":"month"
          }
        }
      }
    }
  }
}

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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
8天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1320 6
|
6天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1119 21
|
2天前
|
存储 人工智能 自然语言处理
阿里云千问办公官网登录入口:qwenwork.cn网页版免下载,注册送2000积分、登录每日再送100积分
千问办公(QwenWork)是阿里巴巴推出的一站式AI办公平台,定位"不止于对话,更注重交付"。它基于千问大模型,具备任务拆解与多步骤自动执行能力,用户一句话即可完成PPT生成、数据分析、网页搭建、视频剪辑、信息调研等复杂任务,覆盖网页端、桌面端及钉钉生态。网页版免下载,访问qwenwork.cn注册即得2000积分,每日登录再送100积分。个人版免费起用,另有付费版与企业版可选。
|
11天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
6天前
|
人工智能 开发者
Qoder CN 大使计划正式开启|无限创造,等你一起
全年免费积分、优先内测、活动支持与更多共创机会,邀请用 Qoder 把想法变成现实的你。
567 6
|
1月前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
10037 33
|
7天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
677 1
|
17天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
8天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
792 2
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA

热门文章

最新文章