利用logstash从文档中导入数据到es中,若未事先设定数据格式,有可能存储时间并未保存为date格式而是text格式。
时间若保存为text,则在会以字符串数组格式存储在es中,是乱序,不好查询。
若保存为date格式,则会以统一的字符串进行存储
实际操作中,最常用的时间格式"yyyy-MM-dd HH:mm:ss",不会自动识别保存为date格式,而"yyyy-MM-dd"、“yyyyMMdd”、“yyyyMMddHHmmss”、“yyyy-MM-ddTHH:mm:ss”、“yyyy-MM-ddTHH:mm:ss.SSS”、"yyyy-MM-ddTHH:mm:ss.SSSZ"等格式可以。所以可以在设计数据时可以注意设定的格式,或者对源数据进行进行预处理再写入。
若就想要保存为”yyyy-MM-dd HH:mm:ss“等格式,就得事先设定可以识别的格式,举例如下
这里我通过Postman新建了一个表,birthday字段中的存储格式为"yyyy-MM-dd HH:mm:ss”或者“yyyy-MM-dd”或者毫秒数,存储格式为date