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

java elasticsearch 桶聚合(bucket)

Elasticsearch指标聚合,就是类似SQL的统计函数,指标聚合可以单独使用,也可以跟桶聚合一起使用,下面介绍Java Elasticsearch指标聚合的写法。
实例:

// 首先创建RestClient,后续章节通过RestClient对象进行参数配置。
RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("localhost", 9200, "http"), // 设置ES服务地址,支持多个new HttpHost("localhost", 9201, "http"));// 创建RestHighLevelClient,请求都是通过RestHighLevelClient实例发出去的。RestHighLevelClient client = new RestHighLevelClient(restClientBuilder);// 创建SearchRequest对象, 索引名=order
SearchRequest searchRequest = new SearchRequest("order");
// 通过SearchSourceBuilder构建搜索参数
SearchSourceBuilder builder = new SearchSourceBuilder();
// 通过QueryBuilders构建ES查询条件,这里查询所有文档,复杂的查询语句设置请参考前面的章节。
builder.query(QueryBuilders.matchAllQuery());// 创建Value Count指标聚合
// 聚合统计命名为:orders, 统计order_id字段值的数量
ValueCountAggregationBuilder valueCountAggregationBuilder = AggregationBuilders.count("orders").field("order_id");// 创建Sum指标聚合
// 聚合统计命名为:total_sale, 统计price字段值的总和
SumAggregationBuilder sumAggregationBuilder = AggregationBuilders.sum("total_sale").field("price");// 设置聚合查询,可以设置多个聚合查询条件,只要聚合查询命名不同就行
builder.aggregation(valueCountAggregationBuilder);
builder.aggregation(sumAggregationBuilder);// 设置搜索条件
searchRequest.source(builder);// 执行ES请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);// 处理聚合查询结果
Aggregations aggregations = searchResponse.getAggregations();
// 根据orders命名查询,ValueCount统计结果
ValueCount valueCount = aggregations.get("orders");
System.out.println(valueCount.getValue());// 根据total_sale命名查询,Sum统计结果
Sum sum = aggregations.get("total_sale");
System.out.println(sum.getValue());

其他指标聚合的用法类似,后面分别介绍常用指标聚合。

常用指标聚合

1. Value Count

值聚合,主要用于统计文档总数,类似SQL的count函数。
创建聚合条件

// 创建Value Count指标聚合
// 聚合统计命名为:orders, 统计order_id字段值的数量
ValueCountAggregationBuilder valueCountAggregationBuilder = AggregationBuilders.count("orders").field("order_id");

处理聚合结果

Aggregations aggregations = searchResponse.getAggregations();
// 根据orders命名查询,ValueCount统计结果
ValueCount valueCount = aggregations.get("orders");
// 打印结果
System.out.println(valueCount.getValue());

********************************************** 未完待续 *******************************************************

相关文章:

java elasticsearch 桶聚合(bucket)

Elasticsearch指标聚合,就是类似SQL的统计函数,指标聚合可以单独使用,也可以跟桶聚合一起使用,下面介绍Java Elasticsearch指标聚合的写法。 实例: // 首先创建RestClient,后续章节通过RestClient对象进行…...

【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)

目录 简述 / 前言1. str 数据类型(字符串)1.1 str对象1.2 str对象属性和方法1.3 字符串编码1.4 转义字符1.5 字符串的格式化 2. tuple 数据类型(元组)2.1 创建元组对象 3. list 数据类型(列表)3.1 创建列表…...

Android 9.0 系统默认显示电量百分比

Android 9.0 系统默认显示电量百分比 近来收到项目需求需要设备默认显示电量百分比,具体修改参照如下: /frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java private void updateShowPercent() {final boolean showin…...

原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显

作为四星冰系治疗角色,夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效,而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜,但也有缺点】 说实话,在使用夏洛蒂…...

Sublime text 添加到鼠标右键菜单,脚本实现

Sublime text 添加到鼠标右键菜单 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\SublimeText] "Open with Sublime Text" "Icon""D:\\Program Files\\Sublime Text\\sublime_text.exe,0" [HKEY_CLASSES_ROOT\*\shell\Subl…...

【算法】离散化 与 哈希 之间的区别

离散化(Discretization)和哈希(Hashing)是两种不同的数据处理技术,用于处理不同类型的问题。 1. 离散化(Discretization): 离散化是将一组连续的数据映射到有限个离散值的过程。主要…...

Android : GPS定位 获取当前位置—简单应用

示例图: MainActivity.java package com.example.mygpsapp;import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat;import android.Manif…...

目标检测——R-CNN算法解读

论文:Rich feature hierarchies for accurate object detection and semantic segmentation 作者:Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik 链接:https://arxiv.org/abs/1311.2524 代码:http://www.cs.berke…...

基于傅里叶变换的运动模糊图像恢复算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、傅里叶变换与图像恢复 4.2、基于傅里叶变换的运动模糊图像恢复算法原理 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %获取角度 img…...

使用mock.js模拟数据

一、安装mock.js npm i mockjs 二、配置JSON文件 我们创建一个mock文件夹,用于存放mock相关的模拟数据和代码实现。 我们将数据全部放在xxx.json文件夹下,里面配置我们需要的JSON格式的数据。 注意:json文件中不要留有空格,否则…...

Android Handler同步屏障:深入解析

Android Handler同步屏障:深入解析 在Android开发中,Handler和MessageQueue是处理线程间通信的重要组件。除了常见的消息发送和处理功能,Handler还提供了一个高级特性:同步屏障。本文将深入探讨这一特性,包括它的工作…...

HT for Web (Hightopo) 使用心得(5)- 动画的实现

其实,在 HT for Web 中,有多种手段可以用来实现动画。我们这里仍然用直升机为例,只是更换了场景。增加了巡游过程。 使用 HT 开发的一个简单网页直升机巡逻动画(Hightopo 使用心得(5)) 这里主…...

Leetcode(面试题 08.01.)三步问题

文章目录 前言一、题目分析二、算法原理1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值是什么 三、代码实现总结 前言 在本文章中,我们将要详细介绍一下Leetcode(面试题 08.01.)三步问题相关的内容 一、题目分析 1.小孩可以上一阶,两阶&#xff…...

AIGC: 关于ChatGPT中输出表格/表情/图片/图表这些非文本的方式

ChatGPT 不止是 文本输出 ChatGPT是一个文本模型, 它本身并不能直接去生成图片图表等内容在我们的工作当中,经常需要通过表格, 图表的方式去进行数据的处理和展示在这种情况下,GPT由于不支持去直接的生成图片和图表,我们还能够使用它的GPT帮…...

聊聊logback的addtivity属性

序 本文主要研究一下logback的addtivity属性 LoggerModel ch/qos/logback/classic/model/LoggerModel.java PhaseIndicator(phase ProcessingPhase.SECOND) public class LoggerModel extends Model {private static final long serialVersionUID 5326913660697375316L;S…...

在网络安全护网中,溯源是什么?

在网络安全护网中,溯源是什么? 在网络安全护网中,溯源是指通过收集、分析和解释数字证据来追踪和还原网络攻击或其他网络犯罪活动的过程。它旨在确定攻击者的身份、行为和意图,以便采取适当的对策,并为法律机构提供必…...

【刷题】动态规划

动态规划 139. 单词拆分(一维) 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1&…...

hadoop操作

文件操作 注意当前所在的路径,创建一个mytest文件夹 创建一个1.txt文件 将1.txt文件移动到mytest中,通过mv改名字,然后查看mytest文件夹的txt文件变成了test.txt 删除文件 上传下载文件 新建1.txt 然后编辑它 随便输入什么 上传 然后看看网…...

角色管理--高级产品经理岗

研发组织管理--角色管理--高级产品经理岗 定位 产品从规划到推进落地的绝对主力,同时能赋能新人,带领新人高质,高效的完成产品的各项工作; 所需资质 某一领域产品专家,有产品架构能力,熟悉产品落地流程…...

nginx: [alert] could not open error log file

先把cmd的报错信息粘出来 nginx: [alert] could not open error log file: CreateFile() “logs/error.log” failed (3: The system cannot find the path specified) 2023/11/29 11:27:37 [emerg] 5040#18772: CreateDirectory() “D:\enviroment\nginx-1.24.0\conf/temp/cli…...

课堂学习1

Miniconda 安装教程 (2026版) Anaconda 是最流行的 Python 和 R 语言数据科学平台,它包含了康达包管理器(Conda)、Python 以及 1500 个科学包及其依赖项。Miniconda 可以看作是 Anaconda 的“轻装版”,只自带 conda …...

嵌入式开发者必看:GitHub高星项目实战解析

1. 嵌入式开发者不可错过的GitHub高星项目盘点作为一名在嵌入式领域摸爬滚打多年的开发者,我深知优质开源项目对技术成长的重要性。GitHub这个宝藏平台上其实藏着不少嵌入式相关的精品项目,今天我就带大家深度剖析几个值得研究的项目,并分享我…...

避开网络限制:用Docker在本地或内网服务器部署Gemini Pro Chat的完整指南

企业级内网部署Gemini Pro Chat的Docker实践指南 当技术团队需要在封闭网络环境中部署AI服务时,传统云部署方案往往面临重重阻碍。本文将分享一套经过实战验证的Docker化部署方案,帮助开发者在完全离线的企业内网或受限制的本地环境中,搭建稳…...

OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能

OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能 1. 为什么需要环境隔离 上周我在测试一个从社区下载的SecGPT-14B技能包时,差点酿成一场小灾难。这个技能声称可以自动分析网络安全日志,但在运行时突然尝试删除我的工作目录文件。幸亏我…...

PTQ量化实战:如何用Python一步步将VGG-16模型压缩到INT8(附完整代码)

PTQ量化实战:如何用Python一步步将VGG-16模型压缩到INT8(附完整代码) 当你在移动设备上使用人脸识别功能时,有没有想过这些复杂的神经网络是如何在有限的计算资源上运行的?答案往往藏在模型量化这个关键技术里。今天我…...

告别卡顿:在Windows10上通过QEMU与WHPX硬件加速高效部署Ubuntu20.04开发环境

1. 为什么选择QEMUWHPX方案? 很多开发者都遇到过这样的困境:在Windows系统上运行Linux虚拟机时,要么性能拉胯到让人抓狂,要么配置复杂得让人望而却步。我之前用VMware跑Ubuntu时,光是开个浏览器就能让CPU飙到100%&…...

信号量实战:多进程协同操作有限缓冲区的伪代码精解

1. 信号量机制与生产者-消费者模型 想象一下餐厅后厨的场景:厨师(生产者)不断制作菜品,服务员(消费者)将菜品端给顾客。如果厨师做菜太快,服务员来不及端走,菜品就会堆积&#xff1b…...

嵌入式IMU姿态解算:轻量级卡尔曼滤波器实现Pitch/Roll估计

1. 项目概述Kalman滤波器库是一个面向嵌入式姿态解算的轻量级C语言实现,专为资源受限的MCU(如STM32F0/F1/F4系列、nRF52、ESP32等)设计。其核心工程目标明确:在无磁力计辅助、仅依赖IMU原始数据(加速度计陀螺仪&#x…...

针对波动计算复杂性的吸收边界条件(PML 用于一般波动方程)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

SpringBoot + 本地事务表 + 定时扫描补偿:轻量级方案实现最终一致性,无中间件依赖

在分布式系统中,数据一致性是一个永恒的话题。传统的分布式事务解决方案如 Seata、XA 等往往需要引入重量级中间件,增加了系统复杂度和运维成本。 本文将介绍一种轻量级的最终一致性方案——本地事务表 + 定时扫描补偿,该方案: 零中间件依赖:不需要 MQ、Seata 等外部组件…...