2015-05-21 5 views
6

Я пытаюсь использовать ES в качестве индекса для моего MongoDB. Мне удалось успешно их интегрировать, но я считаю API поиска довольно сложным и запутанным. Java API тоже не слишком полезен.Получение результата поиска в 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

Я не совсем уверен, что понял ваш вопрос.

Если вы хотите, чтобы распечатать результат вашего searchResponse согласно вашему примеру это должно быть что-то вроде этого:

 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)); 
      } 
     } 

Я использую Gson для преобразования из ответа Json в FireWall (POJO).

Надеюсь, это то, что вы искали.

+0

Я добавил что-то, чтобы отформатировать параметр даты в определенный DateFormat –

+0

No Resulat :(Samy, можете ли вы дать мне свой адрес? – LaymoO

+0

если результаты не заполнены, то ваш результат не должен отвечать. Убедитесь, что ваш образец данных должен иметь результаты. If результаты не пусты, и Gson не удалось преобразовать из Json в POJO, убедитесь, что поля, возвращенные в ElasticSearch, одинаковы из Object FireWall. –

Смежные вопросы