问题描述
我看到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));