private long doCount(SearchRequest countRequest, QueryBuilder elasticsearchQuery) { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); if (elasticsearchQuery != null) { sourceBuilder.query(elasticsearchQuery); } countRequest.source(sourceBuilder); try { return client.search(countRequest).getHits().getTotalHits(); } catch (IOException e) { throw new ElasticsearchException("Error while searching for request: " + countRequest.toString(), e); } }
private long doCount(SearchRequest searchRequest, QueryBuilder elasticsearchQuery, QueryBuilder elasticsearchFilter) { if (elasticsearchQuery != null) { searchRequest.source().query(elasticsearchQuery); } else { searchRequest.source().query(QueryBuilders.matchAllQuery()); } if (elasticsearchFilter != null) { searchRequest.source().postFilter(elasticsearchFilter); } SearchResponse response; try { response = client.search(searchRequest); } catch (IOException e) { throw new ElasticsearchException("Error for search request: " + searchRequest.toString(), e); } return response.getHits().getTotalHits(); }
public void move(String source, String target) { .query(QueryBuilders.matchAllQuery()) .size(350) .sort(SortBuilders.fieldSort(FieldSortBuilder.DOC_FIELD_NAME))
searchSourceBuilder.query(queryBuilder); searchSourceBuilder.from(start); searchSourceBuilder.size(size);
private SearchResponse doScroll(SearchRequest request, CriteriaQuery criteriaQuery) { Assert.notNull(criteriaQuery.getIndices(), "No index defined for Query"); Assert.notNull(criteriaQuery.getTypes(), "No type define for Query"); Assert.notNull(criteriaQuery.getPageable(), "Query.pageable is required for scan & scroll"); QueryBuilder elasticsearchQuery = new CriteriaQueryProcessor().createQueryFromCriteria(criteriaQuery.getCriteria()); QueryBuilder elasticsearchFilter = new CriteriaFilterProcessor() .createFilterFromCriteria(criteriaQuery.getCriteria()); if (elasticsearchQuery != null) { request.source().query(elasticsearchQuery); } else { request.source().query(QueryBuilders.matchAllQuery()); } if (elasticsearchFilter != null) { request.source().postFilter(elasticsearchFilter); } request.source().version(true); try { return client.search(request); } catch (IOException e) { throw new ElasticsearchException("Error for search request with scroll: " + request.toString(), e); } }
@Override public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz, SearchResultMapper mapper) { SearchRequest request = prepareSearch(query, clazz); request.source().query((wrapperQuery(query.getSource()))); SearchResponse response; try { response = client.search(request); } catch (IOException e) { throw new ElasticsearchException("Error for search request: " + request.toString(), e); } return mapper.mapResults(response, clazz, query.getPageable()); }
searchSourceBuilder.query(fq); searchSourceBuilder.sort(new FieldSortBuilder("createdTime").order(SortOrder.ASC));
@Override public <T> List<String> queryForIds(SearchQuery query) { SearchRequest request = prepareSearch(query, Optional.ofNullable(query.getQuery())); request.source().query(query.getQuery()); if (query.getFilter() != null) { request.source().postFilter(query.getFilter()); } SearchResponse response; try { response = client.search(request); } catch (IOException e) { throw new ElasticsearchException("Error for search request: " + request.toString(), e); } return extractIds(response); }
.query(QueryBuilders.boolQuery().must(queryBuilder).filter(standardFilters(range, filter)));
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 <T> Page<T> queryForPage(CriteriaQuery criteriaQuery, Class<T> clazz) { QueryBuilder elasticsearchQuery = new CriteriaQueryProcessor().createQueryFromCriteria(criteriaQuery.getCriteria()); QueryBuilder elasticsearchFilter = new CriteriaFilterProcessor() .createFilterFromCriteria(criteriaQuery.getCriteria()); SearchRequest request = prepareSearch(criteriaQuery, clazz); if (elasticsearchQuery != null) { request.source().query(elasticsearchQuery); } else { request.source().query(QueryBuilders.matchAllQuery()); } if (criteriaQuery.getMinScore() > 0) { request.source().minScore(criteriaQuery.getMinScore()); } if (elasticsearchFilter != null) request.source().postFilter(elasticsearchFilter); if (logger.isDebugEnabled()) { logger.debug("doSearch query:\n" + request.toString()); } SearchResponse response; try { response = client.search(request); } catch (IOException e) { throw new ElasticsearchException("Error for search request: " + request.toString(), e); } return resultsMapper.mapResults(response, clazz, criteriaQuery.getPageable()); }
@Override public List<Message> getMessages(String queue) { try { Expression expression = Expression.fromString("queue='" + queue + "'"); QueryBuilder queryBuilder = expression.getFilterBuilder(); BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery("*"); BoolQueryBuilder query = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); // Create the searchObjectIdsViaExpression source SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(query); searchSourceBuilder.sort(new FieldSortBuilder("created").order(SortOrder.ASC)); // Generate the actual request to send to ES. SearchRequest searchRequest = new SearchRequest(logIndexPrefix + "*"); searchRequest.types(MSG_DOC_TYPE); searchRequest.source(searchSourceBuilder); SearchResponse response = elasticSearchClient.search(searchRequest); return mapGetMessagesResponse(response); } catch (Exception e) { logger.error("Failed to get messages for queue: {}", queue, e); throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, e.getMessage(), e); } }
@Override public List<EventExecution> getEventExecutions(String event) { try { Expression expression = Expression.fromString("event='" + event + "'"); QueryBuilder queryBuilder = expression.getFilterBuilder(); BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery("*"); BoolQueryBuilder query = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); // Create the searchObjectIdsViaExpression source SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(query); searchSourceBuilder.sort(new FieldSortBuilder("created").order(SortOrder.ASC)); // Generate the actual request to send to ES. SearchRequest searchRequest = new SearchRequest(logIndexPrefix + "*"); searchRequest.types(EVENT_DOC_TYPE); searchRequest.source(searchSourceBuilder); SearchResponse response = elasticSearchClient.search(searchRequest); return mapEventExecutionsResponse(response); } catch (Exception e) { logger.error("Failed to get executions for event: {}", event, e); throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, e.getMessage(), e); } }
searchSourceBuilder.query(queryBuilder); searchSourceBuilder.from(start); searchSourceBuilder.size(size);
searchSourceBuilder.query(mappedQuery(query, entity)); searchSourceBuilder.version(entity.hasVersionProperty()); searchSourceBuilder.trackScores(query.getTrackScores());
/** * Constructs a new search source builder with a search query. * * @see org.elasticsearch.index.query.QueryBuilders */ public SearchRequestBuilder setQuery(QueryBuilder queryBuilder) { sourceBuilder().query(queryBuilder); return this; }
sourceBuilder.query(builder.get());
/** * Set the query for selective delete */ public DeleteByQueryRequest setQuery(QueryBuilder query) { if (query != null) { getSearchRequest().source().query(query); } return this; }
/** * Set the query for selective update */ public UpdateByQueryRequest setQuery(QueryBuilder query) { if (query != null) { getSearchRequest().source().query(query); } return this; }