2013-04-30 3 views
5

나는 짹짹을 인덱싱하고 있으며 created_at 필드를 날짜로 매핑하고 싶습니다. 예 날짜는 다음과 같습니다 다음 JODA 시간 형식을 사용하여, 내가 알아 낸 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

당신이 실패 기록의 예를 게시 할 수 :

나는이 형식 지정자 elasticsearch의 트위터 날짜 형식을 구문 분석하는 관리? – imotov

답변

9

지정한 Joda 시간 형식이 완전히 잘못되었습니다. S는 원하는 시간대가 아닌 초 단위입니다. 또한 "+"기호는 시간대 파서에 포함됩니다.

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