2013-04-30 89 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"