2016-06-05 3 views
0

мне нужно знать, как я могу получить комплексное поле из elasticsearch с помощью Java API в запросе BOOL, поле выглядит следующим образом:Получить комплексное поле из elasticsearch с помощью Java API

author: { 
    "es": { [ {"name" : "Name 1" , "alias" : "alias1" }, 
      {"name" : "Name 2" , "alias" : "alias2" }]    
      } 
     } 

Должен ли я изменить отображение ? «Автор» является полем в моем индексе elasticsearch

ответ

0

вы можете использовать этот код :)

QueryBuilder queryBuilder = boolQuery() .must(QueryBuilders.termQuery("name", "")) .must(QueryBuilders.termQuery("alias", "")); 



     SearchRequestBuilder searchRequestBuilder = client.prepareSearch("your index"); 
     searchRequestBuilder.setQuery(queryBuilder); 


     SearchResponse response = searchRequestBuilder.execute().actionGet(); 


     System.out.println(response.getHits().getTotalHits()); 
     for (SearchHit hit : response.getHits()){ 
      list.add(hit.getSourceAsString()); 
     }