【发布时间】:2020-09-23 14:54:21
【问题描述】:
系统规格
Elasticsearch version 6.7.0 running in application
Elasticsearch version 6.3.2 running on docker container
POM 如下所示
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.7.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.70</version>
</dependency>
问题
我有一个使用下面映射的日期字段
"thisIsDate": {
"type": "date",
"format": "strict_date_time"
}
该字段的设置就像在我的应用程序中一样
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", shape = JsonFormat.Shape.STRING, timezone = "UTC")
public Instant thisIsDate;
我插入该字段的数据如下所示。
1900-10-22T12:34:56.78Z
但我一直在回来
"reason":"failed to parse date field with format [basic_date_time]"
我在映射中使用了以下格式,但它们都不能解决我的问题
1. date_time
2. basic_date_time
3. strict_date_time
4. "yyyy-MM-dd'T'HH:mm:ss.SSSX"
有人能指出我正确的方向吗?
【问题讨论】:
-
在您的第一个声明中,您提到了 elasticsearch 的两个版本,这是什么意思,希望您使用与 ES 服务器相同版本的 ES 客户端。
-
不,我使用的 docker 容器的版本与 spring-boot 应用程序上使用的 es 版本不同。 @OpsterElasticsearchNinja
-
您应该使用相同版本的 ES 客户端和服务器,您可以这样做并告诉我问题是否仍然存在?
-
你是对的。如果我使用相同的版本,它可以工作。但我的要求需要我使用 6.3.2。您能想到的任何变通方法或解决方案可以让它们相互协作吗?
-
不,您需要使用相同版本的 ES 服务器和客户端,因为如果您使用不同的版本会出现兼容性问题,这就是弹性搜索甚至在每个次要版本(如 7.4、7.5、7.6)中发布客户端的原因,7.7 如果这些可以正常工作,那么就没有必要这样做
标签: java spring-boot elasticsearch jackson