关闭ElasticSearch自动匹配

这几天在弄ElasticSearch来分析日志,突然有一天早上8:00之后的日志就进不来了,看了分析程序运行正常,服务也正常,只是ElaticSearch的日志增长很快,其中比较值得注意的就是这条了。

Caused by: org.elasticsearch.index.mapper.MapperParsingException: failed to parse date field [22-Nov-2013 12:24:30], tried both date format [yyyy/MM/dd HH:mm:ss||yyyy/MM/dd], and timestamp number with locale []

看起来应该是mapping的问题,对比了一下当前的mapping和之前的,确实有一些不一样,timestamp之前是string,现在成了date,本着调整一下mapping就可以的思路,调整了,开始有数据可以进来了,但是错误还是很多。

仔细看了一下,ES有一个date_detection的机制,得把这个给关了,停止他对时间字段的自动mapping。

CONFIG_DIR下放一个default-mapping.json就可以从cluster级别关闭了。

{
  default : {
    "date_detection" : false,
    "properties" : {
      "@timestamp" : {
        "type" : "date",
        "format" : "dateOptionalTime"
      }
    }
  }
}


Last modified on 2013-11-26