1、terms分组查询

//分组聚合
@Test
public void test40() throws UnknownHostException{
//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();
//2.创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));
//以年龄分组,组名为:terms
AggregationBuilder builder = AggregationBuilders.terms("terms").field("age");
SearchResponse response = client.prepareSearch("lib3").addAggregation(builder).execute().actionGet();
Terms terms = response.getAggregations().get("terms");
for(Terms.Bucket term:terms.getBuckets()) {
System.out.println(term.getKey()+" "+term.getDocCount());
}
}

2、terms query聚合查询

//filter聚合
@Test
public void test41() throws UnknownHostException{
//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();
//2.创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));
//以年龄分组,并查询年龄为20的有多少人
QueryBuilder queryBuilder = QueryBuilders.termQuery("age", 20);
AggregationBuilder builder = AggregationBuilders.filter("filter",queryBuilder);
SearchResponse response = client.prepareSearch("lib3").addAggregation(builder).execute().actionGet();
Filter filter = response.getAggregations().get("filter");
System.out.println(filter.getDocCount());
}

3、filters聚合

//filters聚合:指定多个过滤条件
@Test
public void test42() throws UnknownHostException{
//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();
//2.创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));
//查询heijiu changge中各有多少个文档
QueryBuilder queryBuilder = QueryBuilders.termQuery("interests", "hejiu");
QueryBuilder queryBuilder2 = QueryBuilders.termQuery("interests", "changge"); AggregationBuilder builder = AggregationBuilders.filters("filters",queryBuilder,queryBuilder2);
SearchResponse response = client.prepareSearch("lib3").addAggregation(builder).execute().actionGet();
Aggregation filter = response.getAggregations().get("filters");
System.out.println(filter.toString());
}

4、range聚合

//range聚合:范围分组过滤条件
@Test
public void test43() throws UnknownHostException{
//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();
//2.创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));
//统计年龄在50以下的,年龄在25至50之间,年龄在25以上的人数
AggregationBuilder builder = AggregationBuilders
.range("range")
.field("age")
.addUnboundedTo(50)
.addRange(25,50)
.addUnboundedFrom(25);
SearchResponse response = client.prepareSearch("lib3").addAggregation(builder).execute().actionGet();
Aggregation filter = response.getAggregations().get("range");
System.out.println(filter.toString());
}

5、missing聚合

//missing聚合:为空聚合统计
@Test
public void test44() throws UnknownHostException{
//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();
//2.创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));
//统计价格为空的个数
AggregationBuilder builder = AggregationBuilders.missing("missing").field("price");
SearchResponse response = client.prepareSearch("lib4").addAggregation(builder).execute().actionGet();
Aggregation filter = response.getAggregations().get("missing");
System.out.println(filter.toString());
}

下一篇博客本人将书写java操作elasticsearch实现集群管理。对后期博客感兴趣的朋友可以关注交流,转发请说明出处,本人的博客地址为:https://www.cnblogs.com/chenyuanbo/

技术在于交流!

java操作elasticsearch实现组合桶聚合的更多相关文章

  1. java操作elasticsearch实现query String

    1.CommonTersQuery: 指定字段进行模糊查询 //commonTermsQuery @Test public void test35() throws UnknownHostExcept ...

  2. java操作elasticsearch实现聚合查询

    1.max 最大值 //max 求最大值 @Test public void test30() throws UnknownHostException{ //1.指定es集群 cluster.name ...

  3. java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询

    1.前缀查询(prefix) //prefix前缀查询 @Test public void test15() throws UnknownHostException { //1.指定es集群 clus ...

  4. java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)

    1.条件match query查询 //条件查询match query @Test public void test10() throws UnknownHostException { //1.指定e ...

  5. java操作elasticsearch实现查询删除和查询所有

    后期博客本人都只给出代码,具体的说明在代码中也有注释. 1.查询删除 //查询删除:将查询到的数据进行删除 @Test public void test8() throws UnknownHostEx ...

  6. java操作elasticsearch实现批量添加数据(bulk)

    java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...

  7. java操作elasticsearch实现基本的增删改查操作

    一.在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1.查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticse ...

  8. Java操作ElasticSearch之创建客户端连接

    Java操作ElasticSearch之创建客户端连接 3 发布时间:『 2017-09-11 17:02』  博客类别:elasticsearch  阅读(3157) Java操作ElasticSe ...

  9. java 操作elasticsearch之搭建测试项目环境

    在创建项目之前请确认maven是否安装好,在此我是以环境都搭建好的情况下进行示范,现在以eclipse开发工具为例,具体操作如下: 1.创建maven项目 File - new -other 2.在p ...

随机推荐

  1. Apollo 7 — ConfigService 消息扫描设计实现

    目录 设计 代码实现 总结 1.设计 Apollo 为了减少依赖,将本来 MQ 的职责转移到了 Mysql 中.具体表现为 Mysql 中的 ReleaseMessage 表. 具体官方文档可见:发送 ...

  2. C# Redis安装 使用教程

    前言:lz自打工作以来第一次遇到电脑问题需要重装系统,全盘格式化.打击是沉痛的.特别伤.  然后需要重新在本地部署 redis.这是写这篇博客的原因.希望对大家有所帮助,安装资源和引用DLL可以引用 ...

  3. Async/Await是这样简化JavaScript代码的

    译者按: 在Async/Await替代Promise的6个理由中,我们比较了两种不同的异步编程方法:Async/Await和Promise,这篇博客将通过示例代码介绍Async/Await是如何简化J ...

  4. CSS3属性animation-play-state控制动画运行或暂停的技巧

    animation-play-state介绍 animation-play-state 属性规定动画正在运行还是暂停. div{ animation-play-state:paused; -webki ...

  5. Copy Control settings

    Copy Control settings     Skip to end of metadata   Created by Rajesh Banka, last modified by Jyoti ...

  6. Spring学习之旅(六)Spring AOP工作原理初探

    AOP(Aspect-Oriented  Programming,面向切面编程)是Spring提供的关键技术之一. AOP基于IoC,是对OOP(Object-Oriented Programming ...

  7. 跨域调用接口的方法之一:$.ajaxSetup()

    跨域查询接口的数据,之前在公司时有发生过,产生的原因是,本地请求的域名或IP地址不一致,解除方法,也是修改域名和IP地址.比如: 接口中的数据来自IP地址:192.168.1.23/get.php 如 ...

  8. RMAN restore fails with ORA-01180: can not create datafile 1

      最近在验证.测试备份有效性时,遇到了"ORA-01180: can not create datafile 1"这个错误,顺便结合metalink的官方文档"RMAN ...

  9. Troubleshooting SQL Server RESOURCE_SEMAPHORE Waittype Memory Issues

    前言: 本文是对博客https://www.mssqltips.com/sqlservertip/2827/troubleshooting-sql-server-resourcesemaphore-w ...

  10. 遍历结构体内部元素和值(Name and Value)

    代码: DataStruct.MessageStruct ms = new DataStruct.MessageStruct();//实例化结构体   //遍历结构体  foreach (System ...