spring-data-elasticsearch,Java,spring Data Elasticsearch" /> spring-data-elasticsearch,Java,spring Data Elasticsearch" />

Java 使用ElasticsearchRestTemplate映射OffsetDateTime

Java 使用ElasticsearchRestTemplate映射OffsetDateTime,java,spring-data-elasticsearch,Java,spring Data Elasticsearch,在我的应用程序中,我正在从TransportClient切换到RestHighLevelClient,它使用spring data elasticsearch。当我试图用类型为OffsetDateTime的字段保存实体时,我得到以下示例: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested excep

在我的应用程序中,我正在从
TransportClient
切换到
RestHighLevelClient
,它使用
spring data elasticsearch
。当我试图用类型为
OffsetDateTime
的字段保存实体时,我得到以下示例:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=mapper_parsing_exception, reason=failed to parse field [createdAt] of type [float]]]; nested: ElasticsearchException[Elasticsearch exception [type=json_parse_exception, reason=Current token (START_OBJECT) not numeric, can not use numeric value accessors
 at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@2d7d44ce; line: 1, column: 35]]];] with root cause

org.elasticsearch.ElasticsearchException: Elasticsearch exception [type=json_parse_exception, reason=Current token (START_OBJECT) not numeric, can not use numeric value accessors
 at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@2d7d44ce; line: 1, column: 35]]
    at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:509)
    at org.elasticsearch.ElasticsearchException.fromXContent(ElasticsearchException.java:420)
    at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:450)
    at org.elasticsearch.ElasticsearchException.failureFromXContent(ElasticsearchException.java:616)
    at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:169)
    at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2050)
    at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2026)
...
这是我的Elasticsearch配置:

@Bean(destroyMethod = "close")
public RestHighLevelClient client() {
    return new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchHost, elasticsearchPort)));
}

@Bean
public ElasticsearchRestTemplate elasticsearchTemplate(RestHighLevelClient client) {
    return new ElasticsearchRestTemplate(client);
}
以下是简化的实体定义:

@Data
public class MyEntity {

    @Field(type = FieldType.Date)
    private OffsetDateTime createdAt;

}

为了能够使用类型为
OffsetDateTime
的字段,我应该配置什么?

这可能会帮助您:您使用哪些版本的Spring、Spring数据Elasticsearch和Elasticsearch?