从 5.1.x 升级到 5.2.x
本节描述了从版本 5.1.x 到 5.2.x 的重大变更,以及如何通过新引入的功能替换已移除的功能。
重大变更
批量失败
在 org.springframework.data.elasticsearch.BulkFailureException 类中,getFailedDocuments 方法的返回类型从 Map<String, String> 更改为 Map<String, FailureDetails>,这使得可以获取有关失败原因的更多详细信息。
FailureDetails 类的定义(位于 BulkFailureException 内部):
public record FailureDetails(Integer status, String errorMessage) {
}
脚本和运行时字段
类 org.springframework.data.elasticsearch.core.RuntimeField 和 org.springframework.data.elasticsearch.core.query.ScriptType 已被移动到子包 org.springframework.data.elasticsearch.core.query 中。
ScriptData 构造函数的 type 参数不再可为空。
弃用功能
移除已弃用的代码
-
所有使用旧的已弃用的
RestHighLevelClient的代码已被移除。自 5.0 版本以来,默认的 Elasticsearch 客户端使用的是(不那么新的)Elasticsearch Java 客户端。 -
org.springframework.data.elasticsearch.client.ClientLogger类已被移除。该日志记录器是通过org.springframework.data.elasticsearch.client.WIRE设置进行配置的,但并未与所有客户端兼容。从 5.0 版本开始,请使用 Elasticsearch Java 客户端中提供的跟踪日志记录器,详见 客户端日志记录。 -
org.springframework.data.elasticsearch.core.ElasticsearchOperations.stringIdRepresentation(Object)方法已被移除,请改用同一接口中定义的convertId(Object)方法。 -
org.springframework.data.elasticsearch.core.Range类已被移除,请改用org.springframework.data.domain.Range。 -
org.springframework.data.elasticsearch.core.query.IndexQuery.getParentId()和setParentId(String)方法已被移除,它们不再被使用且为无操作。该方法也已从org.springframework.data.elasticsearch.core.query.IndexQuery类中移除。