ElasticSearch聚合查询
- 数据准备
索引创建
PUT product
{"mappings": {"properties": {"createtime": {"type": "date"},"desc": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}},"analyzer": "ik_max_word"},"lv": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"name": {"type": "text","analyzer": "ik_max_word","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"pice": {"type": "long"},"tags": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"type": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}
}
数据插入
PUT /product/_doc/1
{"name":"小米手机","desc":"手机中的战斗机","pice":3999,"lv":"旗舰机","type":"手机","createtime":"2020-10-01","tags":["性价比","发烧","不卡顿"]
}PUT /product/_doc/2
{"name":"小米NFC手机","desc":"支持全功能NFC,手机中的滑翔机","pice":4999,"lv":"旗舰机","type":"手机","createtime":"2020-05-21","tags":["性价比","发烧","公交卡"]
}
分组查询
# 不同标签商品数量(按照结果数量降序),和不同类型的商品数量
GET /product/_search
{"size": 0, "aggs": {"tags_group": {"terms": {"field": "tags.keyword","order": {"_count": "desc"}}},"type_group": {"terms": {"field": "type.keyword"}}}
}
指标查询
查询pice的最大值和平均值、以及所有指标聚合值
{"size": 0,"aggs": {"pice_avg": {"avg": {"field": "pice"}},"max_pice": {"max": {"field": "pice"}},"stats_pice": {"stats": {"field": "pice"}}}
}
根据name去重
{"size": 0, "aggs": {"name_count": {"cardinality": {"field": "name.keyword"}}}
}
管道聚合
# 平均价格最低的商品分类
GET /product/_search
{"size": 0,"aggs": {"type_group": {"terms": {"field": "type.keyword"},"aggs": {"avg_pice": {"avg": {"field": "pice"}}}},"min_baucket":{"min_bucket": {"buckets_path": "type_group>avg_pice"}}}
}
基于查询结果的聚合
统计电视的平均价格
GET /product/_search
{"query": {"bool": {"must": [{"term": {"type.keyword": {"value": "电视"}}}]}},"aggs": {"tags_agg": {"avg": {"field": "pice"}}}
}{"query": {"bool": {"filter": [{"term": {"type.keyword": {"value": "电视"}}}]}},"aggs": {"tags_agg": {"avg": {"field": "pice"}}}
}针对聚合后的结果做过滤
{"aggs": {"tags_agg": {"terms": {"field": "tags.keyword"}}},"post_filter": {"term": {"tags.keyword": "性价比"}}
}# 价格大于三千的 价格最小值,平均值 ,所有数据的平均值
GET /product/_search
{"query": {"bool": {"must": [{"range": {"pice": {"gte": 3000}}}]}},"size": 0,"aggs": {"min_pice": {"min": {"field": "pice"}},"avg_pice": {"avg": {"field": "pice"}},"all_avg_pic": {"global": {}, //取消了外层的条件过滤"aggs": {"avg_pic": {"avg": {"field": "pice"}}}},"muti_avg_pic": {"filter": { // 结合外层条件取交集"range": {"pice": {"gte": 4000}}},"aggs": {"avg_pic": {"avg": {"field": "pice"}}}}}
}
聚合排序
过滤出手机耳机 再根据类型分组,计算各统计聚合值(平均,最大,最小),最好喝根据最小值排序
{"size": 0,"query": {"bool": {"filter": {"terms": {"type.keyword": ["手机","耳机"]}}}},"aggs": {"avg_tag_pice": {"terms": {"field": "type.keyword","order": {"pic_stats.min": "desc"}},"aggs": {"pic_stats": {"stats": {"field": "pice"}}}}}
}
常用聚合函数
histogram 函数
统计价格在每个区段(间隔200)的产品数量
{"size": 0, "aggs": {"pice_histogram": {"histogram": {"field": "pice","interval": 200, # 分割间隔"keyed": false, # true,则返回 key_value形式"min_doc_count": 1, # 满足结果大于等于1的带才返回"missing": 0 # 空值默认}}}
}
date_histogram 函数
统计每月产品数量
{"size": 0, "aggs": {"create_time_histogram": {"date_histogram": {"field": "createtime","calendar_interval": "month", # 分割间隔 "fixed_interval" 间隔小最大单位 天"format": "yyyy-MM", # 日期格式"extended_bounds": { # 统计数据时间区段"min": "2020-01","max": "2020-12"},"order": { # 排序"_count": "desc"}}}}
}
统计每月产品数量,再做累加
{"size": 0, "aggs": {"create_time_histogram": {"date_histogram": {"field": "createtime","calendar_interval": "month","min_doc_count": 0,"format": "yyyy-MM", "extended_bounds": {"min": "2020-01","max": "2020-12"}},"aggs": { "sum_age": { # 求每月的总和"sum": {"field": "pice"}},"pice_cumulative_sum":{ # 累加每月总和"cumulative_sum": {"buckets_path": "sum_age"}}}}}
}
percentiles 函数 百分比占比统计, 数量越大统计越准确
{"size": 0, "aggs": {"pice_percentiles": {"percentiles": {"field": "pice","percents": [1,5,25,50,75,95,99]}}}
}
percentile_ranks 函数 范围占比统计 数量越大统计越准确
{"size": 0, "aggs": {"pice_percentiles": {"percentile_ranks": {"field": "pice","values": [2000,4000,6000]}}}
}相关文章:
ElasticSearch聚合查询
数据准备 索引创建 PUT product {"mappings": {"properties": {"createtime": {"type": "date"},"desc": {"type": "text","fields": {"keyword": {"type": …...
【毕设级项目】基于AI技术的多功能消防机器人(完整工程资料源码)
基于AI技术的多功能消防机器人演示效果 竞赛-基于AI技术的多功能消防机器人视频演示 前言: 随着“自动化、智能化”成为数字时代发展的关键词,机器人逐步成为社会经济发展的重要主体之一,“机器换人”成为发展的全新趋势和时代潮流。在可预见…...
【一】【设计模式】类关系UML图
1. 继承(Generalization) 继承是对象间的一种层次关系,允许子类继承并扩展父类的功能。 UML线:带有空心箭头的直线,箭头指向基类(父类)。 class Parent {public void parentMethod() {System.…...
【DevOps基础篇】容器化架构基础设施监控方案
【DevOps基础篇】容器化架构基础设施监控方案 目录 【DevOps基础篇】容器化架构基础设施监控方案要监视什么不同监控系统方案比较1. Datadog2. Prometheus3. ELK(Elasticsearch、Logstash、Kibana)4. Sysdig5. 自行打造!如何选择总结推荐超级课程: Docker快速入门到精通 当…...
【QT】文件流操作(QTextStream/QDataStream)
文本流/数据流(二级制格式) 文本流 (依赖平台,不同平台可能乱码)涉及文件编码 #include <QTextStream>操作的都是基础数据类型:int float string //Image Qpoint QRect就不可以操作 需要下面的 …...
CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决
在我的一个Cent OS7开发环境中,按https://yeyongjin.blog.csdn.net/article/details/134178420的方法升级GCC版本到8.3.1。 这两天,要用Google的addressSanitizer检验内存问题,加上编译参数后,却发现编译不通过。configure时直接退…...
ubuntu2004桌面系统英伟达显卡驱动安装方法
#如何查看显卡型号 lspci | grep -i vga#----output------ 01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f06 (rev a1)根据 Device 后的 值 进入网站查询 pci-ids.ucw.cz/mods/PC/10de?actionhelp?helppci #根据显卡型号,下载对应系统的驱动…...
Java通过Excel批量上传数据!!!
一、首先在前端写一个上传功能。 <template><!-- 文件上传 --><el-upload class"upload-demo" drag action"" :on-change"onChange" :auto-upload"false"><el-icon class"el-icon--upload"><up…...
【PyQT/Pysider】控件背景渐变
默认渐变配色说明 background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 178, 102, 255), stop:0.55 rgba(235, 148, 61, 255), stop:0.98 rgba(0, 0, 0, 255), stop:1 rgba(0, 0, 0, 0));这段样式表使用了qlineargradient函数来创建…...
ChatGPT-4 VS 文心一言4.0
在线体验 地址(含 gpt 3.5 / 4.0,文心 3.5 / 4.0):https://chat.tool4j.com 点击访问 文心一言和ChatGPT-4都是非常强大的自然语言处理模型,它们都能够在对话系统和其他NLP应用中发挥巨大的作用。然而,它们…...
MYSQL------从概述到DQL
数据库(数据管理,数据存储的仓库) 数据库管理系统(操纵和管理数据库的大型软件) SQL是操作关系型的编程语言,是一套标准 MySQL下载安装完成以后,可以进行启动和停止操作,对于启动和停…...
MATLAB算法实战应用案例精讲-【图像处理】图像识别(基础篇)(二)
目录 数字图像处理基本知识 传统图像处理方法进行瑕疵检测 传统算法方向的选择...
Leetcode 3.12
leetcode hot 100 链表1.两两交换链表中的节点2.随机链表的复制3.排序链表 链表 1.两两交换链表中的节点 两两交换链表中的节点 1.必须要设置一个dummy (temp) 结点2.保存第二个节点3.先让第一个节点指向第三个节点4.再让第二个节点指向第一个节点5.最后让dummy指向第二个节点…...
【天池课堂】零基础入门数据挖掘-课程汇总
写在前面: 如果你现在很迷茫,但是又对数据挖掘感兴趣,建议先看看以下两个视频直播,两位大佬亲身讲述自己和数据挖掘的前世今生。 《如何入门数据挖掘竞赛》 鱼遇雨欲语与余。天池明星选手,武汉大学硕士,天…...
表单进阶(3)-上传文件和隐藏字段
上传文件:<input type"file"> 隐藏字段:<input type"hidden" name"" id"" value"带给后端的信息"> 禁用disabled:<button disabled"disabled">注册</bu…...
LLM(大语言模型)常用评测指标-MAP@R
MAPR (Mean Average Precision at R) 是一种用于评估信息检索系统或排序模型效果的评价指标。它特别适用于那些返回一组相关结果的情况,例如搜索引擎或推荐系统。这里的“R”代表返回的相关结果的数量。MAPR 考虑了结果的排名和相关性两个因素。 计算方法 计算平…...
腾讯面经学习笔记
💖 前言 👩🏫 参考地址 💖 操作系统 1. 进程和线程的区别 本质区别 进程是操作系统资源分配的基本单位线程是任务调度和执行的基本单位 开销方面 每个进程都有独立的代码和数据空间(程序上下文)&#…...
北京某中厂凉经
3月12号 大二想着找一份暑假面试,然后就海投。北京某上市公司给了面试,这也是我的第一个面试,听面试官最后的话大概是挂了。 大概回忆一下当时面试的部分内容吧,虽然已经过去一两小时的,而且我属于那种一面完就忘的差…...
离线数仓(五)【数据仓库建模】
前言 今天开始正式数据仓库的内容了, 前面我们把生产数据 , 数据上传到 HDFS , Kafka 的通道都已经搭建完毕了, 数据也就正式进入数据仓库了, 解下来的数仓建模是重中之重 , 是将来吃饭的家伙 ! 以及 Hive SQL 必须熟练到像喝水一样 ! 第1章 数据仓库概述 1.1 数据仓库概念 数…...
python | 类与对象
在 Python 中,我们用关键字 class 来定义类: class Player:pass Player 类中只有一条语句 pass,这是 Python 中的特殊语句,没有实际含义。 Python 在执行到它时也什么都不会做。不过它能够保证结构的完整性。例如,我…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
