2015-05-21 13 views
6

में एक SearchResponse का परिणाम प्राप्त करना मैं अपने MongoDB के लिए सूचकांक के रूप में ES का उपयोग करने की कोशिश कर रहा हूं। मैंने उन्हें सफलतापूर्वक एकीकृत करने में कामयाब रहा है, लेकिन मुझे खोज एपीआई बल्कि जटिल और भ्रमित लगता है। जावा एपीआई या तो बहुत उपयोगी नहीं है।ElasticSearch

मैं सटीक मिलान ढूंढने में सक्षम हूं, लेकिन मैं यह परिणाम कैसे प्राप्त कर सकता हूं? यहां मेरा कोड है:

Node node = nodeBuilder().node(); 

SearchResponse sr = node.client().prepareSearch() 
     .addAggregation(
      AggregationBuilders.terms("user").field("admin2san") 
      .subAggregation(AggregationBuilders.terms("SPT").field("64097")) 
     ) 
     .execute().actionGet(); 

SearchHit[] results = sr.getHits().getHits(); 
List<Firewall> myfirewall = results.getSourceAsObjectList(Firewall.class); 
for (Firewall info : myfirewall) { 
     System.out.println("search result is " + info); 
} 
+0

क्या आप इसे थोड़ा और विस्तारित कर सकते हैं? आप अंतिम परिणाम के रूप में क्या चाहते हैं? –

+0

मैं इस क्वेरी के लिए परिणाम Sytem.out.println में प्रदर्शित करना चाहता हूं। – LaymoO

उत्तर

12

मुझे पूरा यकीन नहीं है कि मैं आपका प्रश्न समझ गया हूं।

 SearchHit[] results = sr.getHits().getHits(); 
     for(SearchHit hit : results){ 

      String sourceAsString = hit.getSourceAsString(); 
      if (sourceAsString != null) { 
       Gson gson = new GsonBuilder().setDateFormat(dateFormat) 
         .create(); 
       System.out.println(gson.fromJson(sourceAsString, Firewall.class)); 
      } 
     } 

मैं फ़ायरवॉल (POJO) को Json प्रतिक्रिया से कन्वर्ट करने के लिए Gson उपयोग कर रहा हूँ:

आप अपने उदाहरण के अनुसार अपने searchResponse का परिणाम प्रिंट करना चाहते हैं यह कुछ इस तरह होना चाहिए।

मुझे आशा है कि यह वही है जो आप खोज रहे थे।

+0

मैंने आपके डेट पैरामीटर को परिभाषित दिनांकफॉर्मैट –

+0

में कोई भी Resulat प्रारूपित करने के लिए कुछ जोड़ा :(सैमी क्या आप मुझे अपना पता दे सकते हैं? – LaymoO

+0

यदि परिणाम खाली हैं तो आपके पुनर्विक्रय के पास कोई प्रतिक्रिया नहीं होनी चाहिए। सुनिश्चित करें कि आपके डेटा नमूने के परिणाम होना चाहिए। यदि परिणाम खाली नहीं हैं और जीसन जेसन से पीओजेओ में परिवर्तित करने में असफल रहे, सुनिश्चित करें कि लोचदार खोज में लौटाए गए फ़ील्ड ऑब्जेक्ट फ़ायरवॉल से समान हैं। –