当前位置: 首页 > news >正文

ElasticSearch聚合查询

  1. 数据准备
索引创建
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)

文本流/数据流&#xff08;二级制格式&#xff09; 文本流 &#xff08;依赖平台&#xff0c;不同平台可能乱码&#xff09;涉及文件编码 #include <QTextStream>操作的都是基础数据类型&#xff1a;int float string //Image Qpoint QRect就不可以操作 需要下面的 …...

CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决

在我的一个Cent OS7开发环境中&#xff0c;按https://yeyongjin.blog.csdn.net/article/details/134178420的方法升级GCC版本到8.3.1。 这两天&#xff0c;要用Google的addressSanitizer检验内存问题&#xff0c;加上编译参数后&#xff0c;却发现编译不通过。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 #根据显卡型号&#xff0c;下载对应系统的驱动…...

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

在线体验 地址&#xff08;含 gpt 3.5 / 4.0&#xff0c;文心 3.5 / 4.0&#xff09;&#xff1a;https://chat.tool4j.com 点击访问 文心一言和ChatGPT-4都是非常强大的自然语言处理模型&#xff0c;它们都能够在对话系统和其他NLP应用中发挥巨大的作用。然而&#xff0c;它们…...

MYSQL------从概述到DQL

数据库&#xff08;数据管理&#xff0c;数据存储的仓库&#xff09; 数据库管理系统&#xff08;操纵和管理数据库的大型软件&#xff09; SQL是操作关系型的编程语言&#xff0c;是一套标准 MySQL下载安装完成以后&#xff0c;可以进行启动和停止操作&#xff0c;对于启动和停…...

MATLAB算法实战应用案例精讲-【图像处理】图像识别(基础篇)(二)

目录 数字图像处理基本知识 传统图像处理方法进行瑕疵检测 传统算法方向的选择...

Leetcode 3.12

leetcode hot 100 链表1.两两交换链表中的节点2.随机链表的复制3.排序链表 链表 1.两两交换链表中的节点 两两交换链表中的节点 1.必须要设置一个dummy (temp) 结点2.保存第二个节点3.先让第一个节点指向第三个节点4.再让第二个节点指向第一个节点5.最后让dummy指向第二个节点…...

【天池课堂】零基础入门数据挖掘-课程汇总

写在前面&#xff1a; 如果你现在很迷茫&#xff0c;但是又对数据挖掘感兴趣&#xff0c;建议先看看以下两个视频直播&#xff0c;两位大佬亲身讲述自己和数据挖掘的前世今生。 《如何入门数据挖掘竞赛》 鱼遇雨欲语与余。天池明星选手&#xff0c;武汉大学硕士&#xff0c;天…...

表单进阶(3)-上传文件和隐藏字段

上传文件&#xff1a;<input type"file"> 隐藏字段&#xff1a;<input type"hidden" name"" id"" value"带给后端的信息"> 禁用disabled&#xff1a;<button disabled"disabled">注册</bu…...

LLM(大语言模型)常用评测指标-MAP@R

MAPR (Mean Average Precision at R) 是一种用于评估信息检索系统或排序模型效果的评价指标。它特别适用于那些返回一组相关结果的情况&#xff0c;例如搜索引擎或推荐系统。这里的“R”代表返回的相关结果的数量。MAPR 考虑了结果的排名和相关性两个因素。 计算方法 计算平…...

腾讯面经学习笔记

&#x1f496; 前言 &#x1f469;‍&#x1f3eb; 参考地址 &#x1f496; 操作系统 1. 进程和线程的区别 本质区别 进程是操作系统资源分配的基本单位线程是任务调度和执行的基本单位 开销方面 每个进程都有独立的代码和数据空间&#xff08;程序上下文&#xff09;&#…...

北京某中厂凉经

3月12号 大二想着找一份暑假面试&#xff0c;然后就海投。北京某上市公司给了面试&#xff0c;这也是我的第一个面试&#xff0c;听面试官最后的话大概是挂了。 大概回忆一下当时面试的部分内容吧&#xff0c;虽然已经过去一两小时的&#xff0c;而且我属于那种一面完就忘的差…...

离线数仓(五)【数据仓库建模】

前言 今天开始正式数据仓库的内容了, 前面我们把生产数据 , 数据上传到 HDFS , Kafka 的通道都已经搭建完毕了, 数据也就正式进入数据仓库了, 解下来的数仓建模是重中之重 , 是将来吃饭的家伙 ! 以及 Hive SQL 必须熟练到像喝水一样 ! 第1章 数据仓库概述 1.1 数据仓库概念 数…...

python | 类与对象

在 Python 中&#xff0c;我们用关键字 class 来定义类&#xff1a; class Player:pass Player 类中只有一条语句 pass&#xff0c;这是 Python 中的特殊语句&#xff0c;没有实际含义。 Python 在执行到它时也什么都不会做。不过它能够保证结构的完整性。例如&#xff0c;我…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...