2012-04-16 18 views
6

मैं लोचदार खोज पर काम कर रहा हूं। यहां मैं एक जावा एपीआई के माध्यम से नेस्टेड प्रकार के खेतों की एक सरणी इंडेक्स करना चाहता था। क्या कोई इस पर एक उदाहरण दे सकता है। मैंने कुछ कोशिश की लेकिन वे असफल रहे।Elasticsearch में नेस्टेड प्रकार की सरणी को कैसे अनुक्रमणित करें?

XContentBuilder xb1 = XContentFactory.jsonBuilder().startObject(); 
XContentBuilder xb2 = XContentFactory.jsonBuilder().startObject(); 

xb1.startArray("eventnested"); 
for(int j=0;j<2;j++) { 
    xb2.field("event_type",eventType); 
    xb2.field("event_attribute_instance",eventInstance); 
    xb2.startArray("attributes"); 
    for(int i=0;i<2;i++) { 
     XContentBuilder xb3 = XContentFactory.jsonBuilder().startObject(); 
     xb3.field("event_attribute_name", attrName); 
     xb3.field("event_attribute_value", attrValue); 
     xb2.value(xb3.copiedBytes()); 
    } 
    xb1.value(xb2.copiedBytes()); 
} 

, डेटा का अनुक्रमण जब मैं प्रतिक्रिया विशेष क्षेत्र का डेटा

"eventnested.event_type" की तरह लग रहा था पढ़ने के बाद: [ "eyJldmVudF90eXBlIjoiUXVvdGF0aW9uIiwiZXZlbnRfYXR0cmlidXRlX2luc3RhbmNlIjoiMSIsImF0dHJpYnV0ZXMiOlsiZXlKbGRtVnVkRjloZEhSeWFXSjFkR1ZmYm1GdFpTSTZJbkJsY25OdmJpQWlMQ0psZG1WdWRGOWhkSFJ5YVdKMWRHVmZkbUZzZFdVaU9pSkxZWGtnVFdGcmFIVmlaV3hoSW4wPSJdLCJhdHRyaWJ1dGVzIjpbImV5SmxkbVZ1ZEY5aGRIUnlhV0oxZEdWZmJtRnRaU0k2SW5GMWIzUmxJQ0lzSW1WMlpXNTBYMkYwZEhKcFluVjBaVjkyWVd4MVpTSTZJblJvWlNCaWIza2djbUZ3WldRZ2RHaGxJSEJoYVhJZ2IyNGdiblZ0WlhKdmRYTWdiMk5qWVhOcGIyNXpMQ0IzYVhSb0lIUm9aU0JzWVhSbGMzUWdhVzVqYVdSbG JuUWdZbVZwYm1jZ2IyNGdSbkpwWkdGNUluMD0iXX0 = "," eyJldmVudF90eXBlIjoiUXVvdGF0aW9uIiwiZXZlbnRfYXR0cmlidXRlX2luc3RhbmNlIjoiMSIsImF0dHJpYnV0ZXMiOlsiZXlKbGRtVnVkRjloZEhSeWFXSjFkR1ZmYm1GdFpTSTZJbkJsY25OdmJpQWlMQ0psZG1WdWRGOWhkSFJ5YVdKMWRHVmZkbUZzZFdVaU9pSkxZWGtnVFdGcmFIVmlaV3hoSW4wPSJdLCJhdHRyaWJ1dGVzIjpbImV5SmxkbVZ1ZEY5aGRIUnlhV0oxZEdWZmJtRnRaU0k2SW5GMWIzUmxJQ0lzSW1WMlpXNTBYMkYwZEhKcFluVjBaVjkyWVd4MVpTSTZJblJvWlNCMFpXVnVZV2RsY2lCb1lYTWdZbVZsYmlCd2JHRmpaV1FnYVc0Z1lTQnpZV1psZEhrZ2FHOXRaU0JoYm1RZ2QybHNiQ0JpWlNCamFHRnlaMlZrSUhkcGRHZ2djbUZ3WlNKOSJdfQ == "मदद imotov, जो काम के लिए

उत्तर

21
XContentBuilder xb = XContentFactory.jsonBuilder().startObject(); 

xb.startArray("eventnested"); 
for(int j=0;j<2;j++) { 
    xb.startObject(); 
    xb.field("event_type", eventType); 
    xb.field("event_attribute_instance", eventInstance); 
    xb.startArray("attributes"); 
    for(int i=0;i<2;i++) { 
     xb.startObject(); 
     xb.field("event_attribute_name", attrName); 
     xb.field("event_attribute_value", attrValue); 
     xb.endObject(); 
    } 
    xb.endArray(); 
    xb.endObject(); 
} 
xb.endArray(); 
+0

महान धन्यवाद। बीटीडब्ल्यू, अनुक्रमित डेटा उसी संरचना में नहीं दिख रहा है जिसे हमने अनुक्रमित किया है। मैंने curl http: // localhost: 9200/2012-02-16/_search /? Pretty = true और fields = eventandfactnested.attributes.event_attribute_name और q = mother – Manoj

+0

प्रतिक्रिया ऑब्जेक्ट संरचना के बजाय नीचे जैसा डेटा दिखा रही है। क्या आप पुष्टि कर सकते हैं कि यह सही है "eventandfactnested.event_type": ["फैमिली रीलेशन", "कोटेशन", "कोटेशन", "पर्सन एट्रिब्यूट्स", "कोटेशन", "पर्सन कैरियर", "कोटेशन", "कोटेशन", "कोटेशन "," फैमिली रिलेरेशन "," पर्सन कैरियर "," कोटेशन "," कंपनी प्लेसमेंट "," पर्सनलरेशन "," कोटेशन "," कोटेशन "," कोटेशन "," कोटेशन "," पर्सनलमेल एड्रेस "," कोटेशन "," कोटेशन ", "कोटेशन", "पर्सन कैरियर", "कोटेशन", "पर्सन कैरियर", "पर्सन कैरियर", "कोटेशन", "कोटेशन"] – Manoj

+0

मनोज, अगर मेरा उत्तर आपके लिए काम करता है, तो कृपया इसे स्वीकार के रूप में चिह्नित करें। इस तरह से उपयोगकर्ता यह जान लेंगे कि इस प्रश्न का उत्तर दिया गया है और यह मेरा प्रतिष्ठा स्कोर बढ़ाएगा। यदि आपके पास एक और सवाल है, तो इसके लिए एक नया प्रश्न बनाना बेहतर होगा। टिप्पणियां पूछने और सवालों के जवाब देने के लिए अच्छी तरह से काम नहीं करती हैं, वे बहुत कम हैं। आपके दूसरे प्रश्न का संक्षिप्त उत्तर मूल वस्तु _source फ़ील्ड में पाई जा सकती है। लंबा जवाब यह है कि मुझे लगता है कि आपकी स्कीमा लंबे समय तक आपके लिए काम नहीं कर सकती है। – imotov

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