从 4.0.x 升级到 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 版本起,父 ID 的使用已被移除。我们现在弃用相应的字段和方法。

已移除特性

类型映射

@Document 注解和 IndexCoordinates 对象中的类型映射参数已被移除。它们在 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_no 和 primary_term)。