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. 【转载】SpringBoot系列——Swagger2

    微服务学习二:springboot与swagger2的集成:https://www.cnblogs.com/fengli9998/p/7522973.html 注:需要在启动类加 @EnableSwa ...

  2. SpringCloud学习(一):微服务简介

    一.前情概要 1.单体架构是什么 1).一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用. 2).架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格. 2.单体 ...

  3. Runtime详解(上)

    这篇关于Runtime讲解参考https://juejin.im/post/593f77085c497d006ba389f0以及https://www.jianshu.com/p/6ebda3cd80 ...

  4. Guid的生成和数据修整(去除空格和小写字符)

    SqlServer实现 SELECT LOWER(LTRIM(RTRIM(REPLACE(NEWID(),'-','')))) NEWID()函数产生随机数,例如:F874153F-D99B-40A9 ...

  5. [转]Angular4 数据请求 POST、GET

    本文转自:https://blog.csdn.net/dailuwen/article/details/79375980 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  6. Linux-read 命令(20)

    Linux read 命令 参数说明: -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符. -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志. -p ...

  7. WPF实现主题更换的简单DEMO

    WPF实现主题更换的简单DEMO 实现主题更换功能主要是三个知识点: 动态资源 ( DynamicResource ) INotifyPropertyChanged 接口 界面元素与数据模型的绑定 ( ...

  8. couldn't resolve host api.weixin.qq.com

    1.代理服务器突然出现 couldn't resolve host api.weixin.qq.com 不知原因 2.重启nginx无效-----代码肯定没有动过(之前出现过,过了一天恢复) 3.防火 ...

  9. 1:Python开发:初识Python

    1.开发语言: 高级语言:Python, Java, PHP ,C# ,Go, ruby, c++ ==>字节码 低级语言:C,汇编 ==>机器码 2.开发语言的对比: PHP类:适用于写 ...

  10. 前端入门6-JavaScript客户端api&jQuery

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: <HTML5权威指南> <JavaScript权威指南> MD ...