从 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
类中移除。