Date 类型字段格式化问题
设置了日期字段类型,并且设置dateFormat=“yyyy-MM-dd HH:mm:ss”

插入数据报错。
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=mapper_parsing_exception, reason=failed to parse field [operTime] of type [date] in document with id 'OX-rLYQBzWmLI-OUHflm'. Preview of field's value: '2022-10-31T10:51:39.764']
at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:177)
at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1793)
at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1770)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1527)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1484)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1454)
at org.elasticsearch.client.RestHighLevelClient.index(RestHighLevelClient.java:871)
at cn.easyes.core.conditions.BaseEsMapperImpl.insert(BaseEsMapperImpl.java:306)
at cn.easyes.core.conditions.BaseEsMapperImpl.insert(BaseEsMapperImpl.java:294)
... 17 common frames omitted
Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://elasticsearch:9200], URI [/tutor_operlog/_doc?timeout=1m], status line [HTTP/1.1 400 Bad Request]
{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"failed to parse field [operTime] of type [date] in document with id 'OX-rLYQBzWmLI-OUHflm'. Preview of field's value: '2022-10-31T10:51:39.764'"}],"type":"mapper_parsing_exception","reason":"failed to parse field [operTime] of type [date] in document with id 'OX-rLYQBzWmLI-OUHflm'. Preview of field's value: '2022-10-31T10:51:39.764'","caused_by":{"type":"illegal_argument_exception","reason":"failed to parse date field [2022-10-31T10:51:39.764] with format [yyyy-MM-dd HH:mm:ss]","caused_by":{"type":"date_time_parse_exception","reason":"Text '2022-10-31T10:51:39.764' could not be parsed at index 10"}}},"status":400}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:283)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:261)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1514)
... 22 common frames omitted
Caused by: org.elasticsearch.ElasticsearchException: Elasticsearch exception [type=illegal_argument_exception, reason=failed to parse date field [2022-10-31T10:51:39.764] with format [yyyy-MM-dd HH:mm:ss]]
at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:496)
at org.elasticsearch.ElasticsearchException.fromXContent(ElasticsearchException.java:407)
at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:437)
at org.elasticsearch.ElasticsearchException.failureFromXContent(ElasticsearchException.java:603)
at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:169)
... 25 common frames omitted
Caused by: org.elasticsearch.ElasticsearchException: Elasticsearch exception [type=date_time_parse_exception, reason=Text '2022-10-31T10:51:39.764' could not be parsed at index 10]
at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:496)
at org.elasticsearch.ElasticsearchException.fromXContent(ElasticsearchException.java:407)
at org.elasticsearch.ElasticsearchException.innerFromXContent(ElasticsearchException.java:437)
... 29 common frames omitted
+1
用一下fastjson的这个 @JSONField(format = "yyyy-MM-dd HH:mm:ss")
我也是出了这个问题
可以修改java实体类中该字段类型为String; 或者把注解中的dateFormate改为epoch_millis
可以修改java实体类中该字段类型为String; 或者把注解中的dateFormate改为epoch_millis
字段类型不能修改,dateFormat改为epoch_millis不就不能格式化为“yyyy-MM-dd HH:mm:ss”了么?
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
是这个样子吗?

可以修改java实体类中该字段类型为String; 或者把注解中的dateFormate改为epoch_millis
Elasticsearch 版本 7.6.2 Easy-es 版本 1.0.1,新版的easy-es修复这个问题了吗?
https://www.easy-es.cn/pages/4eb7db/#indexfield 升版本试试 // 场景五:支持日期字段在es索引中的format类型 @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis") private String gmtCreate;