Spring Data Elasticsearch是否支持日期字段的多种日期格式

问题描述

我看到Elasticsearch为日期类型字段支持多种日期格式,但是在Spring Data Elasticsearch字段注释中看不到相同的格式。看来Spring Data Elasticsearch仅接受一个格式值。

是否可以在Elasticsearch docs添加多种日期格式?

也许是这样的:

@Field(type = Date,format = {DateFormat.year_month_day,DateFormat.year_month,hour_minute_second_millis})
private java.util.Date day;

解决方法

这可以使用自定义日期格式完成。

@Field(type = Date,format = DateFormat.custom,pattern = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
private long date;

例如,这允许使用纪元日期保存文档,然后您还可以利用多种日期格式进行轻松查询:

rangeQuery("date").lt(LocalDate.of(2020,Month.APRIL,5));