2015-06-08 6 views
0

Есть ли способ указать поля ES, возвращаемые через Transport Client, в частности с помощью BoolQueryBuilder?Укажите поля с помощью клиента Elasticsearch Transport

С REST API это кажется легким, например. Can I specify the result fields in elasticsearch query?

Но не знаете, как это сделать с клиентом транспорта. Если посмотреть на класс BoolQueryBuilder, я не вижу никаких определений для полей.

ответ

1

Использование Java код должен выглядеть следующим образом:

SearchResponse searchResponse = client.prepareSearch("yourindex") 
     .setQuery(boolQuery().must(matchAllQuery(), ...)) 
     .addFields("field1","field2") 
     .get(); 
+0

Спасибо Jettro! – Turar

+0

На самом деле, если я добавляю вызов .addFields() в цепочку, я получаю список SearchHits, но все они являются нулевыми, т. Е. GetSource() имеет значение NULL. Любая идея, что происходит? – Turar

+0

Поскольку вы запрашиваете явные поля, вам нужно получить значение с помощью команды полей: result.getHits(). GetHits() [0] .fields(). Get ("name") –

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