用java分组查elasticsearch
哎,编程路漫漫,一坑又一坑,爬完还会掉,何时是尽头!
今朝有酒今朝醉,程序不对不敢睡!
还是接口昂,今天还是接口有问题,我是很菜,很笨,但是我还是要努力!!
正文:
接口需求是这样的,根据车型查询在线车辆数与总数.哼,挺简单吧,我也觉得简单,But,太菜了。
这块查es,首先要获取到客户端
SearchRequestBuilder requestBuilder = transportClient.prepareSearch("索引名称").setTypes("type名称");//这里是要用到一个聚合查询 直接贴代码了,我也还有些不懂的,先记录下来再说
TermsAggregationBuilder termsBuilder = AggregationBuilders.terms("vehicleTypeCount").field("vehicleType");requestBuilder.addAggregation(termsBuilder);SearchResponse response = requestBuilder.execute().actionGet();
//得到这个分组的集合Terms terms = response.getAggregations().get("vehicleTypeCount");
String id = null;Long count = 0l;List<Object> list = new ArrayList<>();HashMap<String, Object> map = new HashMap<>();for (int i = 0; i < terms.getBuckets().size(); i++) {//这里的id就是我们查的列名 id = terms.getBuckets().get(i).getKey().toString();//count自然就是总量啦 count = terms.getBuckets().get(i).getDocCount();//实际开发中,有时候写代码写蒙了,定义这个map直接map.put(id,count)就完事了,但是实际上map中只会有一条数据,也就是一组kv,然后我是将它组成一个map时放入一个list//其实我也不想这样,感觉这样也不太对,但有时候为了出任务,就不探究根部了,有看了帖子的大佬们如果可以,教我一下哈。(起始id和count每次都代替的是不同的值,但是就是只会有一条数据,难道是jvm只看到了表面字符id,count?) map.put(id, count); list.add(map);} 这样输出的结果是:
"typeCount": {"1231": 1,"b": 1}其中123,b就是车型啦,后面的自然就是总数。
转载于:https://www.cnblogs.com/shuaidong/p/11011848.html
用java分组查elasticsearch相关推荐
- Java基础查漏补缺(2)
Java基础查漏补缺(2) apache和spring都提供了BeanUtils的深度拷贝工具包 +=具有隐形的强制转换 object类的equals()方法容易抛出空指针异常 String a=nu ...
- 无限极分类JAVA 实现—查子孙树、家谱树
无限极分类JAVA 实现-查子孙树.家谱树 效果展示: import java.util.*;public class Test {List<HashMap<String, Object ...
- java代码删除ElasticSearch索引
用java代码删除ElasticSearch索引 public class ElasticsearchDeleteIndexTest {public static void main(String[] ...
- java怎么使用elasticsearch全文检索
使用Java API可以使用Elasticsearch进行全文检索.Java API提供了一个客户端,可以用来发送和接收请求,从而实现与Elasticsearch集群的交互.可以使用Java API实 ...
- java实现sug,Elasticsearch搜索Suggest功能优化
搜索Suggest需要优化问题: 怎么优化Suggest词库,提升Suggest词准确率 怎么提高响应速度 suggest词库获取 冷启动可以从内容中提取热词数据来解决,或者人工设置 挖掘搜索日志: ...
- JAVA框架09 -- Elasticsearch
Elasticsearch介绍和安装 用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品. 而商品的数量非常多,而且分类繁杂.如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易 ...
- java中addrange_java elasticsearch 桶聚合(bucket)
Elasticsearch桶聚合,目的就是数据分组,先将数据按指定的条件分成多个组,然后对每一个组进行统计. 不了解Elasticsearch桶聚合概念,可以先学习下Elasticsearch桶聚合教 ...
- java如何使用elasticsearch
2019独角兽企业重金招聘Python工程师标准>>> 1. 安装elasticsearch(pom.xml 版本为6.0.1) 2. 使用java与elasticsearch建立连 ...
- java用tkmapper分组查询_mybatis example group by count 分组求和 - java分组求和
一.简单说明 本以为mybatis的example可以搞定group by,后面看到说不行 于是曲线救国,直接查出一个list,然后再用java对数据进行操作 不过话说回来,这样写是比写sql麻烦一点 ...
最新文章
- 06JavaScript中的流程控制之循环结构
- harmonyos能否移植到MCU,HarmonyOS(LiteOs_m) 官方例程移植到STM32初体验
- 信息学奥赛C++语言: 求正整数2和n之间的完全数
- 开发基于深度学习的人脸识别【考勤/签到】系统
- 三星Galaxy Note10系列带壳渲染图曝光:将取消3.5mm耳机孔
- php处理post表单数据,php – Httpful post表单数据
- 在pfSense下设置GoDaddy动态DNS API记录
- 从Exchange 通往Office 365系列(五)部署MailBox服务器
- python socket tcp实战_Python socket.TCP_MAXSEG属性代码示例
- stat---文件状态信息结构体
- PhotoShop 各历史版本,你最熟悉哪版?
- sign签名算法一致算法-.net、java、golang
- vue实现拍照人脸识别功能带人脸选中框
- js特效--移动的广告窗
- 自动化测试面试题整理出炉附答案,建议收藏
- win10电脑玩红警老是卡死怎么办?win10电脑玩红警老是卡死解决方法
- JS中apply与call的用法
- 特性(Attributes)
- OneDrive登录失败
- 阿里云 ECS 云计算训练营 Day2:搭建简历网站