2013-04-30 85 views
5

我正在索引推文,并且想要将created_at字段映射到日期。一个例子日期如下:ElasticSearch未映射JODA时间格式

'created_at': 'Wed Sep 21 05:19:16 +0000 2011' 

其使用JODA时间格式,我想通了出来:

"format" : "EEE MMM dd HH:mm:ss +SSSS yyyy", 

然而,试图索引的新鸣叫我收到以下错误时:

{u'status': 400, u'error': u'RemoteTransportException[[Rattler][inet[/192.155.85.243:9301]][index]]; nested: MapperParsingException[Failed to parse [created_at]]; nested: MapperParsingException[failed to parse date field [2013-04-30 20:34:43], tried both date format [yyyyMMdd HH:mm:ss], and timestamp number]; nested: IllegalArgumentException[Invalid format: "2013-04-30 20:34:43" is malformed at "-04-30 20:34:43"]; '} 

我试图更改日期格式使用

yyyy-MM-dd HH:mm:ss 
EEE, dd MMM yyyy HH:mm:ss Z 
EEE dd MMM yyyy HH:mm:ss Z 
EEE MMM dd HH:mm:ss +0000 yyyy 

,和其他几个变化,只是看到,没有运气。我正在使用以下调用创建一个初始推文档:

curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ 
    "tweet" : { 
     "properties" : { 
      "created_at" : {"type" : "date", "format" : "EEE dd MMM yyyy HH:mm:ss Z"} 
     } 
    } 
}' 

任何帮助,非常感谢!

+0

您可以发布失败记录的例子吗? – imotov 2013-05-01 12:22:38

回答

9

您指定的Joda时间格式不完全正确。 S是第二个分数,而不是你想要的时区。时区分析器中还包含“+”号。

我设法用此格式说明解析在elasticsearch Twitter的日期格式:

"format": "EE MMM d HH:mm:ss Z yyyy"