使用的es版本为:
<elasticsearch-rest-client.version>8.14.3</elasticsearch-rest-client.version>
使用的es java sdk版本为 <elasticsearch-java.version>8.14.3</elasticsearch-java.version>
jarkarta版本: <jakarta.json.version>2.0.1</jakarta.json.version>
报错:
isExpectedNumberIntToken()Z
复现过程:
使用java的客户端进行es的搜索,基础的搜索条件过滤都可以查询成功,当加上了sort排序之后,会出现isExpectedNumberIntToken()Z的报错,原因是排序的字段在es里面的类型是Long类型,然后在查询出来的response进行json转化的时候会调用jackson-core包,问题就在于项目里面本身存在了spring-web,nacos等引入的jackson-core的依赖,版本2.11.4,而这个版本与es-java-version 8.14.3把版本冲突,会找不到isExpectedNumberIntToken()方法。
解决办法:
1.强制引入jackson-core包,但是不清楚对原有的项目是否产生影响。
2.通过降低es-java-version,目前尝试了很多版本,最终选择了可以查询也是最新版本的8.14.3。
使用方法2