Java 升级High-Level-REST-Client问题记录

项目使用Elasticsearch 6.8.8进行基本操作,因安全需求升级至7.6.2版本。升级过程中,HighLevelRESTClient版本需与ES服务端保持一致,否则会出现未识别参数等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

项目中有使用Elasticsearch,版本6.8.8.因为业务要求,需要对es进行基本操作。
目前ES支持的客户端链接方式:

1:REST API
可以通过浏览器请求get方法进行链接;
利用Postman等工具发起REST请求;
Java发起HttpClient请求;

2:Transport链接
通过socket链接,用官网一个的TransPort客户端,底层是netty

经过分析后选择使用High Level REST Client 。
在这里插入图片描述

升级

由于安全部门要求,对系统中的jar包进行安全扫描并升级至安全版本,扫描建议将原6.2.4版本升级为7.6.2。

升级过程:
将pom.xml文件中版本替换,并观察代码中报错信息,并进行修复。
原有SearchRequest中的type已变成不可用状态,不过保留仍然可以,另外是client的search方法中,需要增加RequestOption参数,按照源码内容,就保持默认即可。其他地方无需过多修改。
在这里插入图片描述

测试验证

将替换后的项目启动,准备观测是否可以正确获取信息,结果发现程序报错,信息如下:
在这里插入图片描述

发现在请求信息中存在未识别的参数。
寻找代码中,并没有设置这个参数,根据上面报错猜测这个参数是有默认信息。
在这里插入图片描述
对该参数进行修改调整等一系列操作,发现都无济于事,后来将High Level REST Client版本切换回6.X之后,发现SearchRequest中并没有这个参数,因而是升级后带来的参数信息。
在这里插入图片描述

结论

Java 中的High Level REST Client 为高级别的Rest客户端,基于低级别的REST客户端,增加了编组请求JSON串,解析响应JSON串等相关API,使用的版本需要和ES服务端的版本保持一致,否则会有版本问题。由于ES服务端使用的版本是6.X,不能支持High Level REST Client 7.X中关于跨集群参数的配置,故而出现无法识别参数的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值