JSON没有日期数据类型,因此Elasticsearch中的日期可以是:
- 包含格式化日期的字符串,例如“2015-01-01”或“2015/01/01 12:10:30”。
- 表示自历元以来的毫秒数。
- 表示自历元(配置)起的秒数。
注意:自历元起的毫秒值必须为非负。使用格式化日期表示1970年之前的日期。
在内部,日期转换为UTC(如果指定了时区),并存储为表示自历元起毫秒数的长数字。
日期查询在内部转换为此长表示形式的范围查询,聚合和存储字段的结果根据与字段关联的日期格式转换回字符串。
注意:日期将始终呈现为字符串,即使它们最初在JSON文档中作为long提供。
可以自定义日期格式,但如果未指定格式,则使用默认格式:
"strict_date_optional_time||epoch_millis"
这意味着它将接受带有可选时间戳的日期,这些时间戳符合严格的日期可选时间或自历元起的毫秒所支持的格式。
例如:
PUT my-index-000001
{
"mappings": {
"properties": {
"date": {
"type": "date" (1)
}
}
}
}
PUT my-index-000001/_doc/1
{ "date": "2015-01-01" } (2)
PUT my-index-000001/_doc/2
{ "date": "