2014-12-08 4 views
1

У меня есть следующие JSON объектElasticsearch возвращение поля объекта

{ "type_name" : 
    { 
     "id" : "string" 
     "timestamp" : "string" 
     "item" : [{"name":"string"}, {...} ...] 
    } 
} 

При запуске запроса, как это так,

lastResponse = client.prepareSearch("index") 
      .setSearchType(SearchType.QUERY_AND_FETCH) 
      .setQuery(qb) 
      .setFrom(0).setSize(60).setExplain(true) 
      .execute() 
      .actionGet(); 

Ответ возвращает мне список type_name, которые соответствуют запросу.

Есть ли способ, чтобы elasticsearch возвращал один «элемент» в качестве противопоставления всему типу type_name?

ответ

1

fields. Использование API JSON это будет выглядеть следующим образом:

{ 
    "fields" : ["id", "timestamp"], 
    "query" : { 
     "term" : { "id" : "1234567" } 
    } 
} 

При использовании API Java, используйте setFields следующим образом:

GetResponse response = client.prepareGet(index, type, id) 
     .setFields("title") 
     .execute() 
     .actionGet(); 

Смотрите этот forum пост для более подробной информации.

+0

Как бы это сделать, используя java api? –

+0

Я обновил свой ответ, чтобы включить пример Java –