es: java->count统计、distinct去重

 1 统计count

GET /indexname/_count
{"query": {"range": {"dataTime": {"from": "2023-01-22","to": null,"include_lower": true,"include_upper": true,"format": "yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd","boost": 1}}}
}/*** 查询指定索引文档总数(可增加查询条件,如果为空,则查询所有)*/
@Test
public void testCount() {SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();CountRequest countRequest = new CountRequest();//构造查询条件RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("dataTime").gte("2023-01-22").format("yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd");searchSourceBuilder.query(rangeQueryBuilder);countRequest.indices("indexname").source(searchSourceBuilder);CountResponse countResponse = null;try {countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);return countResponse.getCount();} catch (IOException e) {log.error("[EsClientConfig.countDocumentSize][error][fail to count document size,param is {}]", countRequest);}return 0;log.info("[document size is {}, indexName is {}]", size, indexName);
}
\

2. 使用agge 统计

在过滤条件后,统计总数(count), dinsticn , count(distinct())

GET /indexName/_search
{"size": 0,"query": {"range": {"dataTime": {"from": "2023-01-22","to": null,"include_lower": true,"include_upper": true,"format": "yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd","boost": 1}}},"aggregations": {"objtypename": {"terms": {"field": "externalObj","size": 100,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"order": [{"_count": "desc"},{"_key": "asc"}]}},"objtypecount": {"cardinality": {"field": "externalObj"}},"total_count":{"value_count": {"field": "id.keyword"}}}
}
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(httpHostsList.toArray(new HttpHost[httpHostsList.size()])));SearchRequest searchRequest = new SearchRequest();searchRequest.indices("indexName");SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("dataTime").gte("2023-01-22").format("yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd");TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("objtypename").field("externalObj").size(100);CardinalityAggregationBuilder cardinalityAggregationBuilder = AggregationBuilders.cardinality("objtypecount").field("externalObj");ValueCountAggregationBuilder valueCountAggregationBuilder = AggregationBuilders.count("total_count").field("id.keyword");searchSourceBuilder.query(rangeQueryBuilder);searchSourceBuilder.aggregation(termsAggregationBuilder);searchSourceBuilder.aggregation(cardinalityAggregationBuilder);searchSourceBuilder.aggregation(valueCountAggregationBuilder);searchSourceBuilder.size(0);System.out.println("----"+searchSourceBuilder.toString());searchRequest.source(searchSourceBuilder);SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);//  打印: objtypename,objtypecount,total_countAggregations aggregations = searchResponse.getAggregations();for(Aggregation aggregation : aggregations.asList()){System.out.println("---"+aggregation.getName());}
// distict Terms objtypenameTerms =  aggregations.get("objtypename");for(Terms.Bucket bucket : objtypenameTerms.getBuckets()){System.out.println("***"+ bucket.getKeyAsString()+"   :   "+bucket.getDocCount() );}// count(disinct)Cardinality cardinality = aggregations.get("objtypecount");System.out.println("---"+cardinality.getValue());//countValueCount valueCount = aggregations.get("total_count");System.out.println("^^^"+ valueCount.getValue());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wf-docker集群搭建(未完结)

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、redis集群二、mysql集群三、nacos集群1. 环境要求2. 拉取镜像2.1. 拉取镜像方式配置集群2.2. 自定义nacos镜像配置集群 3 自定义…

C语言 sizeof 函数内部进行计算

直接看代码 #include <stdio.h> int main() {int i 2;int j;j sizeof(i i);printf("i %d, j %d", i ,j);return 0; }执行结果&#xff1a; 可以看到 i的值一直是没有变的&#xff0c; j 是int类型下 sizeof占用的大小为 4个字节&#xff0c;不是i的 22…

Leetcode456. 132 Pattern

给定一个 n n n个元素的数组 132模式&#xff0c;就是找到 n u m s [ i ] , n u m s [ j ] , n u m s [ k ] nums[i], nums[j], nums[k] nums[i],nums[j],nums[k],满足 i < j < k , n u m s [ i ] < n u m s [ k ] < n u m s [ j ] i < j < k, nums[i] < …

NewStarCTF2023week4-More Fast(GC回收)

打开链接&#xff0c;存在很多个类&#xff0c;很明显是php反序列化漏洞利用&#xff0c;需要构造pop链 &#xff0c; 关于pop链构造的详细步骤教学&#xff0c;请参考我之前的博客&#xff0c;真的讲得很详细也容易理解&#xff1a; http://t.csdnimg.cn/wMYNB 如果你是刚接…

代碼隨想錄算法訓練營|第四十五天|1049. 最后一块石头的重量 II、494. 目标和、474.一和零。刷题心得(c++)

目录 讀題 1049. 最后一块石头的重量 II 自己看到题目的第一想法 看完代码随想录之后的想法 494. 目标和 自己看到题目的第一想法 看完代码随想录之后的想法 474.一和零 自己看到题目的第一想法 看完代码随想录之后的想法 1049. 最后一块石头的重量 II - 實作 思路 …

宏电5G RedCap工业智能网关获首个中国移动5G物联网开放实验室5G及轻量化产品能力认证

10月21日&#xff0c;2023世界物联网博览会——中国移动物联网开发者大会暨物联网产业论坛在无锡圆满举行。宏电股份参与中国移动5G物联网开放实验室5G及轻量化产品能力认证成果授牌仪式&#xff0c;并获得认证证书。 此次认证主要对产品功能、产品性能、RedCap网络兼容性进行测…

sw型材利用父子关系找最新特征

利用父子关系可以找到设计树最新的编辑

复习mysql中的事务

一个事务的开始和结尾必须是 start transaction | commit; rollback 事务特性 1.原子性&#xff1a;多个操作打包成一个整体&#xff0c;要么全部执行&#xff0c;要么一个都不执行。 不过这里的“一个都不执行”并不是真正的全不执行&#xff0c;只是看起来与没执行一样。…

软件结构化设计包括架构设计、接口设计、数据设计和过程设计

软件结构化设计包括 (33) 等任务。 A. 架构设计、数据设计、过程设计、原型设计 B. 架构设计、过程设计、程序设计、原型设计 C. 数据设计、过程设计、交互设计、程序设计 D. 架构设计、接口设计、数据设计、过程设计 解析&#xff1a; 本题考查软件结构化设计的基础知…

js中循环判断找到满足条件的单项后结束循环

当选择的所有项中&#xff0c;如果有一项不满足条件则返回false&#xff0c;让业务逻辑停止&#xff0c;一般都是使用forEach循环&#xff0c;但是forEach循环有个弊端就是return不能跳出循环&#xff0c;所以这时候就需要使用for循环中的break来跳出循环。 下面是代码示例&am…

leetcode_2910 合法分组的最少组数

1. 题意 给定一组数。将这些数进行分组&#xff0c;使得 组内所有元素相等任意两个组的大小相差不超过1 合法分组的最少组数 2. 题解 直接引用别人的题解算了吧&#xff0c;是一个数学变换的题。 核心是当 ⌊ v k ⌋ ≥ v % k \lfloor \frac {v}{k} \rfloor \ge v \%k ⌊…

redis持久化之AOF(Append Only File)

1 : AOF 是什么 以日志的形式来记录每个写操作&#xff08;增量保存&#xff09;&#xff0c;将redis执行过的所有写指令记录下来&#xff08;读操作不记 录&#xff09;&#xff0c;只允追加文件但不可改写文件&#xff0c;redis启动之初会读取该文件重新构造数据&#xff0c;…

java打印杨辉三角形

杨辉三角形的特点是什么&#xff1f; 三角形的两条腰上的数字都是1。 每行数字左右对称。 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角形。即第n1行的第i个数等于第n行的第i-1个数和第i个数之和。 每行数字的个数与序列的序号n之间的关系是&#xff1a;…

Linux 基础入门(学习笔记通俗易懂版)

Linux基础入门&#xff08;学习笔记通俗易懂版&#xff09; 本文章是学习了Linux的学习记录&#xff0c;着重记录了我对于Linux各命令的用法与感悟&#xff0c;欢迎各位大佬批评指正 记录者&#xff1a;CYH-BI 记录日期&#xff1a;2023年7月7日 本篇文章将使用虚拟机并安装…

hadoop集群搭建

hadoop有三种部署方式 1、Local (Standalone) Mode&#xff08;单机模式&#xff09; 数据存储在本地 2、Pseudo-Distributed Mode&#xff08;伪集群模式&#xff09; 数据存储在HDFS 3、Fully-Distributed Mode&#xff08;集群模式&#xff09; 集群部署&#xff0c;数据存储…

修改huggingface的缓存路径

最近查了一下C盘爆满的原因&#xff0c;发现了huggingface的缓存文件这个罪魁祸首。 每次远程导入模型、数据集时&#xff0c;都会启用huggingface的缓存机制&#xff0c;将整个大文件下载至缓存目录中&#xff0c;从而保证下一次加载时非常快速。 我们可以发现&#xff0c;默…

2.2.3 三层交换机实现VLAN之间的通信

实验2.2.3 三层交换机实现VLAN之间的通信 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.划分SW2A的VLAN&#xff0c;并分配接口。2.划分SW3A的VLAN&#xff0c;配置每个VLAN接口的IP地址。3.设计计算机的网关&#xff0c;实现不同VLAN之间和不同网络之间的通…

探索光模块的MSA多源协议

在当今高度互联的世界中&#xff0c;光模块作为网络设备的重要部分&#xff0c;其性能和质量直接影响到整个网络系统的运行。其中光模块由于其灵活性和高效性&#xff0c;已经成为数据中心和云计算领域的主要选择。本文易天光通信将深入探讨光模块的MSA协议&#xff0c;揭示其重…

《算法通关村——双指针妙用》

《算法通关村——双指针妙用》 删除元素 描述 给你一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。要求&#xff1a;不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组…

Pytorch公共数据集、tensorboard、DataLoader使用

本文将主要介绍torchvision.datasets的使用&#xff0c;并以CIFAR-10为例进行介绍&#xff0c;对可视化工具tensorboard进行介绍&#xff0c;包括安装&#xff0c;使用&#xff0c;可视化过程等&#xff0c;最后介绍DataLoader的使用。希望对你有帮助 Pytorch公共数据集 torc…