一、背景说明
版本漏洞处理,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;}