2013-04-30 14 views
5

मैं ट्वीट्स अनुक्रमणित कर रहा हूं, और बनाई गई_at फ़ील्ड को एक तारीख में मैप करना चाहता हूं। एक उदाहरण की तारीख इस तरह दिखता है:लोचदार खोज 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

आप रिकॉर्ड है कि विफल रहता है का एक उदाहरण पोस्ट कर सकते हैं:

मैं इस फॉर्मेट स्पेसिफायर साथ elasticsearch में चहचहाना दिनांक स्वरूप को पार्स करने में कामयाब रहे? – imotov

उत्तर

9

आपके द्वारा निर्दिष्ट जोडा समय प्रारूप पूरी तरह से सही नहीं है। एस दूसरे के अंश के लिए है, जैसा कि आप चाहते थे टाइमज़ोन नहीं। टाइमऑन पार्सर में भी "+" चिह्न शामिल है।

"format": "EE MMM d HH:mm:ss Z yyyy" 
संबंधित मुद्दे