private SearchResponse doScroll(SearchRequest request, SearchQuery searchQuery) { Assert.notNull(searchQuery.getIndices(), "No index defined for Query"); Assert.notNull(searchQuery.getTypes(), "No type define for Query"); Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll"); if (searchQuery.getFilter() != null) { request.source().postFilter(searchQuery.getFilter()); } request.source().version(true); try { return client.search(request); } catch (IOException e) { throw new ElasticsearchException("Error for search request with scroll: " + request.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(); }
@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); }
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(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()); }
private SearchRequest prepareSearch(SearchRequest searchRequest, SearchQuery searchQuery) { if (searchQuery.getFilter() != null) { searchRequest.source().postFilter(searchQuery.getFilter());
searchSourceBuilder.postFilter(postFilterQuery);
/** * Sets a filter that will be executed after the query has been executed and only has affect on the search hits * (not aggregations). This filter is always executed as last filtering mechanism. */ public SearchRequestBuilder setPostFilter(QueryBuilder postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter on the query executed that only applies to the search query * (and not aggs for example). */ public SearchSourceBuilder postFilter(String postFilterString) { return postFilter(postFilterString.getBytes(Charsets.UTF_8)); }
SearchSourceBuilder sourceBuilder = buildExpandSearchSourceBuilder(innerHitBuilder, innerCollapseBuilder) .query(groupQuery) .postFilter(searchRequest.source().postFilter()); SearchRequest groupRequest = new SearchRequest(searchRequest); groupRequest.source(sourceBuilder);
/** * Sets a filter that will be executed after the query has been executed and only has affect on the search hits * (not aggregations). This filter is always executed as last filtering mechanism. */ public SearchRequestBuilder setPostFilter(QueryBuilder postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter on the query executed that only applies to the search query * (and not aggs for example). */ public SearchRequestBuilder setPostFilter(BytesReference postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter on the query executed that only applies to the search query * (and not aggs for example). */ public SearchRequestBuilder setPostFilter(XContentBuilder postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter that will be executed after the query has been executed and only has affect on the search hits * (not aggregations). This filter is always executed as last filtering mechanism. */ public SearchRequestBuilder setPostFilter(QueryBuilder postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter on the query executed that only applies to the search query * (and not aggs for example). */ public SearchRequestBuilder setPostFilter(byte[] postFilter, int postFilterOffset, int postFilterLength) { sourceBuilder().postFilter(postFilter, postFilterOffset, postFilterLength); return this; }
/** * Sets a filter on the query executed that only applies to the search query * (and not aggs for example). */ public SearchRequestBuilder setPostFilter(Map postFilter) { sourceBuilder().postFilter(postFilter); return this; }
/** * Sets a filter that will be executed after the query has been executed and only has affect on the search hits * (not aggregations). This filter is always executed as last filtering mechanism. */ public SearchRequestBuilder setPostFilter(QueryBuilder postFilter) { sourceBuilder().postFilter(postFilter); return this; }
context.parsedQuery(queryShardContext.toQuery(source.query())); if (source.postFilter() != null) { InnerHitContextBuilder.extractInnerHits(source.postFilter(), innerHitBuilders); context.parsedPostFilter(queryShardContext.toQuery(source.postFilter()));
private long doCount(SearchSourceBuilder searchRequestBuilder, QueryBuilder elasticsearchQuery, QueryBuilder elasticsearchFilter) { if (elasticsearchQuery != null) { searchRequestBuilder.query(elasticsearchQuery); } else { searchRequestBuilder.query(QueryBuilders.matchAllQuery()); } if (elasticsearchFilter != null) { searchRequestBuilder.postFilter(elasticsearchFilter); } CountResult result = execute(new Count.Builder().query(searchRequestBuilder.toString()).build()); return result.getCount().longValue(); }
@Override public <T> List<String> queryForIds(SearchQuery query) { SearchSourceBuilder search = prepareSearch(query).query(query.getQuery()).fetchSource(false); if (query.getFilter() != null) { search.postFilter(query.getFilter()); } SearchResult result = executeSearch(query, search); return extractIds(result); }