Высокий уровень отдыха клиент получает только размер хитов - PullRequest
0 голосов
/ 06 ноября 2018

я знаю, что с помощью транспортного клиента можно получить количество просмотров, например:

import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.index.query.QueryBuilders.*;

SearchResponse response = client.prepareSearch("your_index_goes_here")
.setTypes("YourTypeGoesHere")
.setQuery(QueryBuilders.termQuery("some_field", "some_value"))
.setSize(0) // Don't return any documents, we don't need them.
.get();

SearchHits hits = response.getHits();
long hitsCount = hits.getTotalHits();

но как я могу получить размер хитов с клиентом высокого уровня отдыха?

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Если вы используете Elasticsearch 6.6 или новее. Может быть, вы хотите использовать Count API: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/search-count.html

В клиенте высокого уровня отдыха (https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.6/java-rest-high-count.html):

CountRequest countRequest = new CountRequest("your_index_goes_here");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.termQuery("some_field", "some_value"));
countRequest.source(searchSourceBuilder);

CountResponse countResponse = client.count(countRequest, RequestOptions.DEFAULT);
long hitsCount = countResponse.getCount();
0 голосов
/ 08 ноября 2018

Вот версия с клиентом REST:

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
   .query(queryBuilder)
   .size(1);
SearchRequest searchRequest = new SearchRequest("your_index_goes_here");
searchRequest.source(searchSourceBuilder);
SearchResponse response = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);
System.out.println("Total: " + response.getResponse().getHits().totalHits);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...