跳到主要内容

从 4.0.x 升级到 4.1.x

DeepSeek V3 中英对照 Upgrading from 4.0.x to 4.1.x

本节描述了从版本 4.0.x 到 4.1.x 的重大变更,以及如何通过新引入的功能来替换已移除的功能。

弃用

id 属性的定义

可以通过将实体的一个属性命名为 iddocument 来将其定义为 id 属性。这种行为现在已被弃用,并且会产生警告。请使用 @Id 注解来标记一个属性作为 id 属性。

索引映射

ReactiveElasticsearchClient.Indices 接口中,updateMapping 方法已被弃用,推荐使用 putMapping 方法。它们的功能相同,但 putMapping 与 Elasticsearch API 中的命名保持一致:

别名处理

IndexOperations 接口中,方法 addAlias(AliasQuery)removeAlias(AliasQuery)queryForAlias() 已被弃用。新的方法 alias(AliasAction)getAliases(String…​)getAliasesForIndex(String…​) 提供了更多的功能和更简洁的 API。

父级 ID

自 Elasticsearch 6 版本起,parent-id 的使用已被移除。我们现在弃用相应的字段和方法。

移除内容

类型映射

@Document 注解和 IndexCoordinates 对象中的 type mappings 参数已被移除。这些参数在 Spring Data Elasticsearch 4.0 中已被弃用,并且它们的值不再被使用。

重大变更

ReactiveElasticsearchClient.Indices 方法的返回类型

到目前为止,ReactiveElasticsearchClient.Indices 中的方法尚未被使用。随着 ReactiveIndexOperations 的引入,有必要更改一些返回类型:

  • createIndex 变体现在返回 Mono<Boolean> 而不是 Mono<Void>,以表示索引创建成功。

  • updateMapping 变体现在返回 Mono<Boolean> 而不是 Mono<Void>,以表示映射存储成功。

DocumentOperations.bulkIndex 方法的返回类型

这些方法原本返回一个包含新索引记录 ID 的 List<String>。现在它们返回一个 List<IndexedObjectInformation>;这些对象包含 ID 以及关于乐观锁的信息(seq_noprimary_term)。