当前位置: 首页 > news >正文

【ES实战】ES6.8到9.1.4的常用客户端变化

ES6.8到9.1.4的常用客户端变化

VIP文章陆续免费更新,需优先的文章,请留言

文章目录

  • ES6.8到9.1.4的常用客户端变化
    • Elasticsearch for Apache Hadoop and Spark
    • Transport Client
    • High Level Rest Client
    • Low Level Rest Client
    • Java API Client
    • Elasticsearch 官网中一些更新的说明
    • 附录 Java API Client重大变更策略

主要涉及的客户端

  1. Elasticsearch for Apache Hadoop and Spark
  2. Transport Client
  3. High Level Rest Client
  4. Low Level Rest Client
  5. Java API Client

客户端们涉及的maven仓库地址

  • org.elasticsearch.client 的maven中央仓库地址
  • co.elastic.clients 的maven中央仓库地址
  • org.elasticsearch/elasticsearch-hadoop的maven中央仓库地址

Elasticsearch for Apache Hadoop and Spark

介绍网址:https://www.elastic.co/guide/en/elasticsearch/hadoop/index.html

依赖

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch-hadoop</artifactId><version>9.0.2</version>
</dependency>

版本范围 0.8.0 ~ 9.0.2,每次的版本更新都是伴随ES服务端的更新而更新,主要更新项是其所依赖的ES版本、Scala版本、Spark版本、hadoop版本。

Transport Client

介绍网址:https://www.elastic.co/guide/en/elasticsearch/client/java-api/7.0/transport-client.html

从7.0开始标记弃用 ,8.0移除-- 官网不展示相关内容了,7标记弃用,但是还是随着服务端进行更新。此时建议Transport Client迁移至High Level Rest Client 。

依赖

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>7.17.29</version>
</dependency>

版本范围 5.0.0-alpha5~7.17.29。每次的版本更新都是伴随ES服务端的更新而更新,对服务端属于配套强依赖。

网页上没有类似ReleaseNote那样直接表明每次发布更新的内容,但是会列出支持的API。

High Level Rest Client

从Deprecated in 7.15.0.开始标记为弃用,建议High Level Rest Client 迁移至 Java API Client

介绍的网址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.8/java-rest-high.html

依赖

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>6.8.23</version>
</dependency>

版本范围 5.6.0 ~ 8.0.0-alpha2。High Level Rest Client的发布周期与 Elasticsearch 服务端相同。可将版本替换为所需的客户端版本。

网页上没有类似ReleaseNote那样直接表明每次发布更新的内容,但是会列出支持的API。

Low Level Rest Client

介绍的网址

版本从5.0至7.15使用的网址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.15/java-rest-low.html

版本从7.16至8.19使用的网址:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.16/java-rest-low.html

依赖

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>8.19.4</version>
</dependency>

版本范围 5.6.0 ~ 9.1.4。Low Level Rest Client的发布周期与 Elasticsearch 服务端相同。

网页上没有类似ReleaseNote那样直接表明每次发布更新的内容,同样没有列出支持的API。Low Level Rest Client与所有 Elasticsearch 版本兼容,主要与HTTP协议和工具包有关系。

Java API Client

介绍网址

版本从7.16至8.19使用的网址:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.16/introduction.html

依赖

 <dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>7.16.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version></dependency>

版本范围 7.15.0 ~ 9.1.47.15.0是一个测试版本,不建议使用。

Elasticsearch 官网中一些更新的说明

release-highlights 发布亮点:一般跨多个版本才会出现,主要变化说明这个上面

Breaking changes 重大变化:包含一些会影响使用的变更

Enhancements 功能强化:对已有功能的加强

有时候有些变更其实没有很明确的区分Enhancements和Breaking changes

附录 Java API Client重大变更策略

Java API 客户端源代码是根据 Elasticsearch API 的正式规范生成的。该 API 规范内容繁多,尽管已针对数百个 Elasticsearch 测试文件进行了测试,但其可能与实际 API 存在差异,从而导致 Java API 客户端出现问题。

修复 API 规范中的这些差异会导致 Java API 客户端的代码更改,而其中一些更改可能需要更新您的应用程序的代码。

补丁版本中的重大变更

API 规范中的一些问题是指属性的类型不正确,例如,一个 long 类型属性应该是字符串,或者一个必需属性实际上是可选的。这些问题可能会导致 Java API 客户端无法正常工作,甚至抛出异常。

当规范问题被发现并解决后,可能需要在使用 Java API 客户端的应用程序中更新代码。即使在补丁版本(例如 7.17.0 → 7.17.1)中,此类重大更改也是可以接受的,因为它们为原本可能无法使用的 API 带来了稳定性。

次要版本中的重大变更

除了修复这些错误之外,API 规范也在不断完善,引入更精确的类型定义,以提高开发人员的舒适度并消除歧义。常用 API 的规范已经相当成熟,因此这些更改通常发生在不常用的 API 上。这些更改也可能导致需要代码更新的重大更改,这些更改在小版本(例如 8.0 → 8.1)中被认为是可接受的。

主要版本中的重大变更

主要版本(例如 7.x → 8.x)可能包含 API 规范和 Java API 客户端底层框架的更大规模重构。这些重构会经过仔细考量,并且仅在解锁新的重要功能或新开发时才会进行。

Elasticsearch API 稳定性保证
所有 Elasticsearch API 都具有稳定性指标,这些指标预示着潜在的变更。如果 API 是稳定的,则只会添加非重大变更。对于实验性 API,可以随时引入重大变更,这意味着这些变更也会反映在 Java API 客户端中。

http://www.dtcms.com/a/461080.html

相关文章:

  • CFS三层靶机-内网渗透
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(6):武汉视界
  • Redis的缓存更新策略
  • MarsEdit 5 for Mac 博客博文编辑管理工具
  • 蒙古语网站建设江西省飞宏建设工程有限公司 网站
  • 智能监控项目:Python 多目标检测系统 目标检测 目标跟踪(YOLOv8+ByteTrack 监控/交通 源码+文档)✅
  • 分布式光纤传感:照亮每一个角落的“温度感知神经”
  • 实测Triton-Copilot:AI如何助力高性能算子开发
  • 泰州网站专业制作能免费做片头的网站
  • 京东获取整站实时商品详情数据|商品标题|数据分析提取教程
  • 【Linux探索学习】第一篇Linux的基本指令(2)——开启Linux学习第二篇
  • Redisson 看门狗机制深度解析:分布式锁的守护者
  • 非预置应用使用platform签名并且添加了android.uid.system无法adb安装解决方法
  • 分布式光纤声波振动传感:守护智慧城市燃气管网安全的 “神经末梢”
  • Hadoop 3.3.5 伪分布式安装配置的完整过程
  • 郑州市中原区建设局网站南京市建设工程档案馆网站
  • Oracle PL/SQL Developer v16的安装以及导出导入表数据
  • 消防管理系统如何重构现代空间防御体系
  • Coze源码分析-资源库-编辑数据库-后端源码-流程/技术/总结
  • Linux之lvm存储卷管理篇
  • 数字大健康浪潮下:智能设备重构人力生态,传统技艺如何新生?
  • 郑州陆港开发建设有限公司网站西安有哪些家做网站的公司
  • 整体设计 逻辑系统程序 之19 内核层最大资本箱为核心的完整设计讨论— 含分层架构、CNN 数据处理支撑、监督闭环与多场景交付物
  • GPT系列模型-详解
  • 【pytest 】 pytest 生命周期
  • DMAIC各个阶段用到的图
  • 企业网站建设 网络服务dedecms网站后台模板修改
  • 国外网站开发现状毕业设计做网站教程
  • 【鸿蒙心迹】参加ICT大赛对我的影响和帮助
  • 从轮询到实时推送:将站内消息接口改造为 WebSocket 服务