es查询时间long转date_Elasticsearch的date类型和后端时间类型的转换

1. ES中date类型的表现形式

JSON中没有date类型,ES中的date可以由下面3种方式表示:

格式化的date字符串,例如 "2018-01-01" 或者 "2018-01-01 12:00:00"

一个long型的数字,代表从1970年1月1号0点到现在的毫秒数

一个integer型的数字,代表从1970年1月1号0点到现在的秒数

2. ES中date类型的存储形式

在ES内部,date被转为UTC(UTC是世界统一之间,中国与该时间存在8小时时差)并被存储为一个长整型数字,代表从1970年1月1号0点到现在的毫秒数

date类型字段上的查询会在内部被转为对long型值的范围查询,查询的结果类型是字符串。

假如插入的时候,值是"2018-01-01",则返回"2018-01-01"

假如插入的时候,值是"2018-01-01 12:00:00",则返回"2018-01-01 12:00:00"

假如插入的时候,值是1514736000000,则返回"1514736000000"。(进去是long型,出来是String型)

3. ES中对date类型格式化

date 格式可以在 put mapping 的时候用 format 参数指定,如果不指定的话,则启用默认格式。

默认格式是"strict_date_optional_time||epoch_millis"。这表明只接受符合"strict_date_optional_time"格式的字符串值,或者lo

你可能感兴趣的:(es查询时间long转date)