2013-04-30 5 views
5

私はツイートのインデックスを作成しており、created_atフィールドを日付にマッピングしたいと考えています。例えば、日付は次のようになります。ElasticSearchはJODAの時刻形式をマッピングしていません

ジョダの時刻形式を使用して、私はあることを考え出し
'created_at': 'Wed Sep 21 05:19:16 +0000 2011' 

:インデックスに私は次のエラーを取得する新しいつぶやきをしようとしたとき、しかし

"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

答えて

9

指定したJoda時間形式が完全ではありません。 Sは秒単位で、タイムゾーンではありません。また、 "+"記号はタイムゾーンパーサーに含まれています。

私は、この書式指定子とelasticsearchうtwitter日付形式を解析するために管理:

"format": "EE MMM d HH:mm:ss Z yyyy" 
関連する問題