繁体   English   中英

将格式为“ dd-MM-yyyy HH:mm:ss”的日期字段索引到ElasticSearch 2.2.1中

[英]Indexing date fields with format “dd-MM-yyyy HH:mm:ss” into ElasticSearch 2.2.1

有没有人能够将日期格式为“ dd-MM-yyyy HH:mm:ss”的日期字段索引到ElasticSearch 2.2.1中?

我的映射如下:

"_updated_at": { "type": "date", "format": "Y-MM-d' 'H:m:ss" }

当我尝试建立索引时,出现以下错误:

java.lang.RuntimeException: MapperParsingException[failed to parse [doc._created_at]]; nested: IllegalArgumentException[Invalid format: "2015-10-03 13:56:21" is malformed at " 13:56:21"];

这似乎很疯狂,因为上述日期格式很常见。

有什么解决方法(除了用“ T”代替空格)?

请更新您的映射到

“ _updated_at”:{“ type”:“ date”,“ format”:“ dd-MM-yyyy HH:mm:ss”}

另外,在将日期传递给ES时,请确保您使用“ dd-MM-yyyy HH:mm:ss”作为日期格式

我认为除了_updated_at之外,您还必须为_created_at做相同的映射:

"_created_at": {
          "type": "date",
          "format": "Y-MM-d' 'H:m:ss"
}

我已经解决了问题。 我必须使用_default映射-确保将日期字段(_created_at,_updated_at和_deleted_at)设置为正确的格式。 最初,我只设置一种类型。

这是我的更正映射:

{
  "mappings": {
    "_default": {
      "properties": {
        "doc": {
          "properties": {
            "_created_at": {
              "type": "date",
              "format": "Y-MM-d' 'H:m:ss"
            },
            "_deleted_at": {
              "type": "date",
              "format": "Y-MM-d' 'H:m:ss"
            },
            "_updated_at": {
              "type": "date",
              "format": "Y-MM-d' 'H:m:ss"
            }
          }
        }
      }
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM