1. 事故回放
周五升级集群,7.17 → 8.14,开发环境当场 500:
java.lang.ClassNotFoundException: org.elasticsearch.client.RestHighLevelClient
一查文档,官方早在 8.0 就把 RestHighLevelClient 连根拔掉,7.17.x 是最后一个还能用的版本。本文记录完整迁移流程,附代码和坑点,建议收藏备用。
2. 为什么官方要“砍”HLRC?
一句话:技术债太多,维护不动。
| 维度 | RestHighLevelClient(HLRC) | Java API Client(新) |
|---|---|---|
| 设计年代 | 2017 年,基于 TransportClient 思路 | 2021 年重新设计,纯 REST |
| 代码耦合 | 与 server 端类库深度耦合 | 零 server 依赖,向前兼容 |
| 类型安全 | Map 满天飞 | 强类型,编译时报错 |
| 维护成本 | 每发一版就要同步 POJO | 代码生成器自动生成 |
| 协议支持 | 仅 JSON | JSON / CBOR / SMILE |
官方原话:“HLRC 已成历史包袱,删掉减负。”
3. 迁移路线图
- 7.15 起标记弃用
- 8.0 正式移除
- 7.17 LTS 维护到 2024-08(结束即停止更新)
4. 实战:Spring Boot 3.2 + ES 8.14
4.1 老代码(HLRC)
// build.gradle
implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.22'
// 查询
SearchRequest request
Elasticsearch迁移到Java API Client实战记录

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



