springboot-starter版本升级es版本问题
一、背景说明
版本漏洞处理,springboot版本升级,es版本暂不升级,但是pom引用中es版本一直为7.17.15高版本,不想显示声明版本,定位具体问题,最后还是重新定义了版本进行处理。
二、异常情况
这里看4.4.18是先从2.2.13中依赖来的,但实际打开后不是
你以为只把这个显示声明成3.2.12版本就ok了吗,实际不是,上面的7.17.15也会出现同样的问题
根本原因还是starter升级后,pom里面有es的版本配置
直接粘贴后重新声明版本后正常
但是还是有坑,springboot-starter版本不兼容,只能升级es
ES版本保持6.18.3和springboot-starter 2.7.18冲突,只能升级新版本
三、版本升级
1、es7 之后取消了type
2、底层一些实现方法更新,没有了serchPage,分页改成用ElasticsearchRestTemplate实现
private Page<SfMerchant> searchPage(NativeSearchQueryBuilder nativeSearchQueryBuilder,Query query){
SearchHits<SfMerchant> searchHits = elasticsearchRestTemplate.search(nativeSearchQueryBuilder.build(), SfMerchant.class);
SearchPage<SfMerchant> page = SearchHitSupport.searchPageFor(searchHits, nativeSearchQueryBuilder.build().getPageable());
log.info("es查询商户数据={}", JSON.toJSONString(searchHits));
log.info("es查询商户数据={}", JSON.toJSONString(page));
Page<SfMerchant> respVoPage = new Page<>();
respVoPage.setSize(query.getPageSize());
respVoPage.setCurrent(query.getPageNo());
//高亮结果集,也可以用page.getHighlightFields()获取
List<SfMerchant> list = new ArrayList<>();
for (SearchHit<SfMerchant> each : page) {
SfMerchant vo = each.getContent();
list.add(vo);
}
respVoPage.setRecords(list);
respVoPage.setPages(page.getTotalPages());
respVoPage.setTotal(page.getTotalElements());
return respVoPage;
}