@Override public MultiSearchResult createNewElasticSearchResult(String responseBody, int statusCode, String reasonPhrase, Gson gson) { return createNewElasticSearchResult(new MultiSearchResult(gson), responseBody, statusCode, reasonPhrase, gson); }
private io.searchbox.core.SearchResult wrapInMultiSearch(Search search, Supplier<String> errorMessage) { final MultiSearch multiSearch = new MultiSearch.Builder(search).build(); final MultiSearchResult multiSearchResult = JestUtils.execute(jestClient, multiSearch, errorMessage); final List<MultiSearchResult.MultiSearchResponse> responses = multiSearchResult.getResponses(); if (responses.size() != 1) { throw new ElasticsearchException("Expected exactly 1 search result, but got " + responses.size()); } final MultiSearchResult.MultiSearchResponse response = responses.get(0); if (response.isError) { throw JestUtils.specificException(errorMessage, response.error); } return checkForFailedShards(response.searchResult); } }
@Override public MultiSearchResult createNewElasticSearchResult(String responseBody, int statusCode, String reasonPhrase, Gson gson) { return createNewElasticSearchResult(new MultiSearchResult(gson), responseBody, statusCode, reasonPhrase, gson); }
private long totalCount(final String[] indexNames) { // Return 0 if there are no indices in the given index set. If we run the query with an empty index list, // Elasticsearch will count all documents in all indices and thus return a wrong count. if (indexNames.length == 0) { return 0L; } final List<String> indices = Arrays.asList(indexNames); final String query = new SearchSourceBuilder() .query(QueryBuilders.matchAllQuery()) .size(0) .toString(); final Search request = new Search.Builder(query) .addIndex(indices) .build(); final MultiSearch multiSearch = new MultiSearch.Builder(request).build(); final MultiSearchResult searchResult = JestUtils.execute(jestClient, multiSearch, () -> "Fetching message count failed for indices " + indices); final List<MultiSearchResult.MultiSearchResponse> responses = searchResult.getResponses(); long total = 0L; for (MultiSearchResult.MultiSearchResponse response : responses) { if (response.isError) { throw JestUtils.specificException(() -> "Fetching message count failed for indices " + indices, response.error); } total += response.searchResult.getTotal(); } return total; } }
@Override public MultiSearchResult createNewElasticSearchResult(String responseBody, int statusCode, String reasonPhrase, ObjectMapper objectMapper) throws IOException { return createNewElasticSearchResult(new MultiSearchResult(objectMapper), responseBody, statusCode, reasonPhrase, objectMapper); }
private io.searchbox.core.SearchResult wrapInMultiSearch(Search search, Supplier<String> errorMessage) { final MultiSearch multiSearch = new MultiSearch.Builder(search).build(); final MultiSearchResult multiSearchResult = JestUtils.execute(jestClient, multiSearch, errorMessage); final List<MultiSearchResult.MultiSearchResponse> responses = multiSearchResult.getResponses(); if (responses.size() != 1) { throw new ElasticsearchException("Expected exactly 1 search result, but got " + responses.size()); } final MultiSearchResult.MultiSearchResponse response = responses.get(0); if (response.isError) { throw JestUtils.specificException(errorMessage, response.error); } return checkForFailedShards(response.searchResult); } }
private long totalCount(final String[] indexNames) { // Return 0 if there are no indices in the given index set. If we run the query with an empty index list, // Elasticsearch will count all documents in all indices and thus return a wrong count. if (indexNames.length == 0) { return 0L; } final List<String> indices = Arrays.asList(indexNames); final String query = new SearchSourceBuilder() .query(QueryBuilders.matchAllQuery()) .size(0) .toString(); final Search request = new Search.Builder(query) .addIndex(indices) .build(); final MultiSearch multiSearch = new MultiSearch.Builder(request).build(); final MultiSearchResult searchResult = JestUtils.execute(jestClient, multiSearch, () -> "Fetching message count failed for indices " + indices); final List<MultiSearchResult.MultiSearchResponse> responses = searchResult.getResponses(); long total = 0L; for (MultiSearchResult.MultiSearchResponse response : responses) { if (response.isError) { throw JestUtils.specificException(() -> "Fetching message count failed for indices " + indices, response.error); } total += response.searchResult.getTotal(); } return total; } }