ElasticSearch中date类型是个很重要的类型。在聚合、排序、和kibana等结合使时都需要date类型。但在某些依赖es动态映射出index,type及字段类型时,时间字段值为时间戳可能出现一些问题:
- 动态映射:
- 在开启自动创建索引(action.auto_create_index)下,传入一个json字符串进行保存时
- 在某个字段第一次出现时,如果之前没有定义过映射,ES会自动检测它可能满足的类型,然后创建对应的映射。
- 比如, integer -> long ;string -> date 或string (“yyyy-dd-mm”等字段会转成date )
- 官网对于自动映射的介绍https://www.elastic.co/guide/en/elasticsearch/reference/5.6/dynamic-field-mapping.html#date-detection
这就有个问题,如果json中,时间字段是以 秒时间戳 或者 毫秒时间戳生成的,就无法转换为date,这时可以利用索引模板解决此问题:
_template/template1 PUT{
{
"template": "dea