当前位置:网站首页>RestClient-多条件聚合
RestClient-多条件聚合
2022-07-17 05:12:00 【其然乐衣】

在对应的service层里面写:


HotelService里的代码如下:
@Override
public Map<String, List<String>> filters() {
try {
//1. 准备Request
SearchRequest request = new SearchRequest("hotel");
//2. 准备DSL
//2.1 设置size
request.source().size(0);
//2.2 聚合
buildAggretgaion(request);
//3. 发出请求
SearchResponse response = client.search(request,RequestOptions.DEFAULT);
//4. 解析结果
Map<String,List<String>> result = new HashMap<String, List<String>>();
Aggregations aggregations = response.getAggregations();
//4.1 根据品牌(聚合名称)名称获取品牌的结果
List<String> brandList = getAddByName(aggregations,"brandAgg");
result.put("品牌",brandList); //放入map
//4.2 根据城市(聚合名称)名称获取品牌的结果
List<String> cityList = getAddByName(aggregations,"cityList");
result.put("城市",cityList); //放入map
//4.3 根据星级(聚合名称)名称获取品牌的结果
List<String> starList = getAddByName(aggregations,"starList");
result.put("星级",starList); //放入map
return result;
} catch (IOException e) {
throw new RuntimeException();
}
}
//(抽取出来的) 根据名称获取品牌的结果
private List<String> getAddByName(Aggregations aggregations, String aggName) {
//4.1 根据聚合名称获取聚合结果
Terms brandTerms = aggregations.get(aggName);
//4.2 获取buckets
List<? extends Terms.Bucket> buckets = brandTerms.getBuckets();
//4.3 遍历
List<String> brandList = new ArrayList<String>();
for(Terms.Bucket bucket : buckets){
//4.4 获取key
String key = bucket.getKeyAsString();
brandList.add(key);
System.out.println(key);
}
return brandList;
}
//抽取出来的 聚合
private void buildAggretgaion(SearchRequest request) {
request.source().aggregation(AggregationBuilders
.terms("brandAgg")
.field("brand")
.size(10)
);
request.source().aggregation(AggregationBuilders
.terms("cityAgg")
.field("city")
.size(10)
);
request.source().aggregation(AggregationBuilders
.terms("starAgg")
.field("starName.keyword")
.size(10)
);
}边栏推荐
- 2022-7-15 廉价国产PLC工控板带485主从通信的零散记录
- minio安装部署及简单使用
- 热电阻pt100 CU50隔离转换器转4-20ma模拟量输出温度变送器0-10V
- CUDA编程-05:流和事件
- [附代码] 如何用HOG+SVM实现手写数字识别
- Thermal resistance PT100 cu50 isolation converter to 4-20mA analog output temperature transmitter 0-10V
- QTSS回调例程
- vscode 配置golang开发环境
- Speed sensor signal isolation, acquisition and transformation, sine wave and sawtooth wave signal input, square wave signal output, signal converter
- Darwin 反射总结
猜你喜欢

Image compression based on Quadtree

SD NAND与eMMC优劣势对比
![Pytorch learning notes [3]: fitting data using neural networks](/img/05/6f701eab2c37266dfb56fa37bdb67f.png)
Pytorch learning notes [3]: fitting data using neural networks

CS品牌SDNAND和STM32MCU成功合作资料

Review of software process and management (VIII)

Darwin Streaming Server 介绍

CUDA编程-03:线程层级

CV-Model【2】:Alexnet

Review of software process and management (6)

FMC子卡:4 路 SFP+万兆光纤网络 FMC 子卡
随机推荐
Complete scheme diagram of lth7 five pin chip fs4054 charging circuit principle
2021-11-17 ESP32引脚参考
锂电池充电管理芯片
Fs68001 wireless charging SOC chip has simple periphery and schematic diagram of 5W wireless charging scheme
3U VPX导冷高性能SRIO/以太网数据交换板
Review of software process and management (IX)
Darwin分析经验
golang 多项目工作区搭建
Hm8203 linear two string charging management controller IC
4 路 FMC 接口基带信号处理板(2 个FMC接口、2个FMC+接口)
Pressure strain bridge signal processing photoelectric isolation amplifier
vscode 配置golang开发环境
MCU单片机OTP
4-channel encoder pulse counter, 8-Channel do, Modbus TCP module
4路编码器脉冲计数器,8路DO,Modbus TCP模块
Hm9922 switching buck LED constant current driver IC
2019CS品牌SDNAND和eMMC选择对比重要分析
Rs-485/232 to 4-20ma/0-10v isolated d/a converter
CV-Model【1】:Mnist
热电阻pt100 CU50隔离转换器转4-20ma模拟量输出温度变送器0-10V