2016-08-05 27 views
5

मैं निम्नलिखित JSON इनपुट elasticsearch को भेजने की कोशिश कर रहा हूं लेकिन मुझे एक पार्सर त्रुटि प्राप्त हो रही है।लोचदार खोज दिनांक प्रारूप

यह JSON इनपुट

{ 
    "chassisNumber": "654321", 
    "position": "40.480143, -3.688960", 
    "issue": "Position", 
    "timestamp": "2016-07-15T15:29:50+02:00[Europe/Paris]" 
} 

सूचकांक परिभाषा

{ 
    "mappings":{ 
     "vehicle":{ 
     "properties":{ 
      "vehicle":{ 
       "type":"string" 
      }, 
      "position":{ 
       "type": "geo_point" 
      }, 
      "issue":{ 
       "type":"string" 
      }, 
      "timestamp":{ 
       "type":"date", 
       "format":"YYYY-MM-DD'T'HH:mm:ssZ" 
      } 
     } 
     } 
    } 
} 

और "टाइमस्टैम्प" क्षेत्र से जुड़े त्रुटि।

"reason": "Invalid format: \"2016-07-15T15:29:50+02:00[Europe/Paris]\" is malformed at \"[Europe/Paris]\"" 

मैंने कुछ दिनांक प्रारूपों के साथ प्रयास किया लेकिन कोई भी सफलता नहीं मिली। क्या कोई मुझे elasticsearch में "टाइमस्टैम्प" फ़ील्ड को पार्स करने के लिए सही प्रारूप को परिभाषित करने में मदद कर सकता है?

धन्यवाद !!!

+1

आपको '[यूरोप/पेरिस] 'भाग को हटाने की आवश्यकता है, इसकी आवश्यकता नहीं है क्योंकि' +02: 00' पर्याप्त है। – Val

उत्तर

4

जैसा कि आप मैपिंग में देख सकते हैं कि आपका क्षेत्र timestampdate प्रारूप YYYY-MM-DD'T'HH:mm:ssZ के साथ टाइप किया गया है। तो, Elasticsearch timestamp फ़ील्ड को उसी प्रारूप में पारित करना चाहता है। आपके द्वारा पारित किया जा रहा डेटा 2016-07-15T15:29:50+02:00[Europe/Paris] है जिसमें [Europe/Paris] ज़ोन डेटा के बाद जो मैपिंग में नहीं दिया गया है और एलैस्टिकसेर्च द्वारा समर्थित डिफ़ॉल्ट ISO 8601 प्रारूप का पालन नहीं करता है (अधिक डेटा here उपलब्ध है)।

आप Elasticsearch here द्वारा समर्थित डिफ़ॉल्ट दिनांक प्रारूप पर और अधिक पढ़ सकते हैं।

तो या तो आप Elasticsearch और इसे रखने के मानचित्रण

{ 
    "chassisNumber": "654321", 
    "position": "40.480143, -3.688960", 
    "issue": "Position", 
    "timestamp": "2016-07-15T15:29:50+02:00" 
} 

के अनुसार या कस्टम दिनांक स्वरूप जो Joda वाक्य रचना here परिभाषित इस प्रकार करने के लिए अपने मानचित्रण बदलने के लिए पारित कर दिया अतिरिक्त डेटा निकालना होगा। आपके मामले में यदि यह शाब्दिक क्षेत्र आवश्यक है तो आपको z भी उपयोग करना होगा।

संबंधित मुद्दे