.setParameter(Parameters.SCROLL, "10s") .addIndex(source) .build();
public ScrollResult scroll(String query, TimeRange range, int limit, int offset, List<String> fields, String filter) { final Set<String> affectedIndices = determineAffectedIndices(range, filter); final Set<String> indexWildcards = indexSetRegistry.getForIndices(affectedIndices).stream() .map(IndexSet::getIndexWildcard) .collect(Collectors.toSet()); final String searchQuery; final Sorting sorting = new Sorting("_doc", Sorting.Direction.ASC); if (filter == null) { searchQuery = standardSearchRequest(query, limit, offset, range, sorting).toString(); } else { searchQuery = filteredSearchRequest(query, filter, limit, offset, range, sorting).toString(); } final Search.Builder initialSearchBuilder = new Search.Builder(searchQuery) .addType(IndexMapping.TYPE_MESSAGE) .setParameter(Parameters.SCROLL, "1m") .addIndex(indexWildcards); fields.forEach(initialSearchBuilder::addSourceIncludePattern); final io.searchbox.core.SearchResult initialResult = checkForFailedShards(JestUtils.execute(jestClient, initialSearchBuilder.build(), () -> "Unable to perform scroll search")); recordEsMetrics(initialResult, range); return scrollResultFactory.create(initialResult, query, fields); }
final Search.Builder searchBuilder = new Search.Builder(query) .addIndex(elasticIndex) .setParameter(Parameters.SCROLL, SCROLL_TIME_SESSION);
searchBuilder.setParameter(Parameters.SIZE, ELASTIC_SEARCH_SCROLL_PAGE_SIZE); searchBuilder.setParameter(Parameters.SCROLL, new TimeValue(ELASTIC_SEARCH_SCROLL_KEEP_ALIVE_TIME).toString());
@Override @SuppressWarnings("nls") public void listOrgs(IAsyncResultHandler<List<String>> handler) { try { String query = "{\n" + " \"aggs\" : {\n" + " \"all_orgs\" : {\n" + " \"terms\" : { \"field\" : \"organizationId\" }\n" + // i.e. only records containing an orgId field. " }\n" + " }\n" + "}"; Search search = new Search.Builder(query) .addIndex(getIndexName()) .setParameter(Parameters.SIZE, 0) .build(); SearchResult response = getClient().execute(search); // Aggregations section MetricAggregation aggregation = response.getAggregations(); // Look at the terms subsection TermsAggregation terms = aggregation.getTermsAggregation("all_orgs"); // Grab only the name of each aggregation (we don't care about count List<String> results = terms.getBuckets().stream() .map(TermsAggregation.Entry::getKey) .collect(Collectors.toList()); handler.handle(AsyncResultImpl.create(results)); } catch (IOException e) { handler.handle(AsyncResultImpl.create(e)); } }
searchBuilder.setParameter(Parameters.SIZE, ELASTIC_SEARCH_SCROLL_PAGE_SIZE); searchBuilder.setParameter(Parameters.SCROLL, new TimeValue(ELASTIC_SEARCH_SCROLL_KEEP_ALIVE_TIME).toString());
@Override @SuppressWarnings("nls") public void listOrgs(IAsyncResultHandler<List<String>> handler) { try { String query = "{\n" + " \"aggs\" : {\n" + " \"all_orgs\" : {\n" + " \"terms\" : { \"field\" : \"organizationId\" }\n" + // i.e. only records containing an orgId field. " }\n" + " }\n" + "}"; Search search = new Search.Builder(query) .addIndex(getIndexName()) .setParameter(Parameters.SIZE, 0) .build(); SearchResult response = getClient().execute(search); // Aggregations section MetricAggregation aggregation = response.getAggregations(); // Look at the terms subsection TermsAggregation terms = aggregation.getTermsAggregation("all_orgs"); // Grab only the name of each aggregation (we don't care about count List<String> results = terms.getBuckets().stream() .map(TermsAggregation.Entry::getKey) .collect(Collectors.toList()); handler.handle(AsyncResultImpl.create(results)); } catch (IOException e) { handler.handle(AsyncResultImpl.create(e)); } }
public ScrollResult scroll(String query, TimeRange range, int limit, int offset, List<String> fields, String filter) { final Set<String> affectedIndices = determineAffectedIndices(range, filter); final Set<String> indexWildcards = indexSetRegistry.getForIndices(affectedIndices).stream() .map(IndexSet::getIndexWildcard) .collect(Collectors.toSet()); final String searchQuery; final Sorting sorting = new Sorting("_doc", Sorting.Direction.ASC); if (filter == null) { searchQuery = standardSearchRequest(query, limit, offset, range, sorting).toString(); } else { searchQuery = filteredSearchRequest(query, filter, limit, offset, range, sorting).toString(); } final Search.Builder initialSearchBuilder = new Search.Builder(searchQuery) .addType(IndexMapping.TYPE_MESSAGE) .setParameter(Parameters.SCROLL, "1m") .addIndex(indexWildcards); fields.forEach(initialSearchBuilder::addSourceIncludePattern); final io.searchbox.core.SearchResult initialResult = checkForFailedShards(JestUtils.execute(jestClient, initialSearchBuilder.build(), () -> "Unable to perform scroll search")); recordEsMetrics(initialResult, range); return scrollResultFactory.create(initialResult, query, fields); }
private void initScroll() throws StorageException { try { Search search = new Search.Builder(query) .addIndex(getIndexName()) .addType(entityType) .setParameter(Parameters.SCROLL, "1m") .addSort(sort) .build(); SearchResult response = esClient.execute(search); if (!response.isSucceeded()) { throw new StorageException("Scrolled query failed " + response.getErrorMessage()); } scrollId = response.getJsonObject().get("_scroll_id").getAsString(); this.hits = (List) response.getHits(Map.class); } catch (IOException e) { throw new StorageException(e); } }
private SearchResult doScroll(SearchSourceBuilder searchSourceBuilder, CriteriaQuery criteriaQuery, long scrollTimeInMillis) { 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()); searchSourceBuilder.query(elasticsearchQuery != null ? elasticsearchQuery : QueryBuilders.matchAllQuery()); if (elasticsearchFilter != null) { searchSourceBuilder.postFilter(elasticsearchFilter); } Search.Builder search = new Search.Builder(searchSourceBuilder.toString()). addTypes(criteriaQuery.getTypes()). addIndices(criteriaQuery.getIndices()). setParameter(Parameters.SIZE, criteriaQuery.getPageable().getPageSize()). setParameter(Parameters.SCROLL, scrollTimeInMillis + "ms"); return new ExtendedSearchResult(execute(search.build())); }
private void initScroll() throws StorageException { try { Search search = new Search.Builder(query) .addIndex(getIndexName()) .addType(entityType) .setParameter(Parameters.SCROLL, "1m") .addSort(sort) .build(); SearchResult response = esClient.execute(search); if (!response.isSucceeded()) { throw new StorageException("Scrolled query failed " + response.getErrorMessage()); } scrollId = response.getJsonObject().get("_scroll_id").getAsString(); this.hits = (List) response.getHits(Map.class); } catch (IOException e) { throw new StorageException(e); } }
private SearchResult doScroll(SearchSourceBuilder searchSourceBuilder, SearchQuery searchQuery, long scrollTimeInMillis) { 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"); QueryBuilder elasticsearchQuery = searchQuery.getQuery(); searchSourceBuilder.query(elasticsearchQuery != null ? elasticsearchQuery : QueryBuilders.matchAllQuery()); if (searchQuery.getFilter() != null) { searchSourceBuilder.postFilter(searchQuery.getFilter()); } Search.Builder search = new Search.Builder(searchSourceBuilder.toString()). addTypes(searchQuery.getTypes()). addIndices(searchQuery.getIndices()). setParameter(Parameters.SIZE, searchQuery.getPageable().getPageSize()). setParameter(Parameters.SCROLL, scrollTimeInMillis + "ms"); return new ExtendedSearchResult(execute(search.build())); }
public Builder setSearchType(SearchType searchType) { return setParameter(Parameters.SEARCH_TYPE, searchType); }
public Builder setSearchType(SearchType searchType) { return setParameter(Parameters.SEARCH_TYPE, searchType); }
private CompletableFuture<SearchResult> searchAsync(String query, TimeRangeFilter timeRangeFilter) { Search.Builder builder = new Search.Builder(query) .addType(TYPE); if(timeRangeFilter != null) { final List<String> indices = indexSelector.getIndexNames(timeRangeFilter); builder.addIndices(indices); builder.setParameter("ignore_unavailable", "true"); // ignore unknown index LOG.debug("Executing asynchronous query on {}: {}", indices, query); } else { LOG.debug("Executing asynchronous query on all indices: {}", query); } return executeAsync(builder.build()); }
private <E extends Element, S extends DocumentSchema<E>> Pair<S, Search> createSearch(Pair<S, SearchSourceBuilder> kv, SearchQuery<E> query) { Search.Builder builder = new Search.Builder(kv.getValue1().toString().replace("\n", "")) .ignoreUnavailable(true).allowNoIndices(true).setParameter(Parameters.SCROLL, "6m"); kv.getValue0().getIndex().getIndex(query.getPredicates()).forEach(builder::addIndex); return Pair.with(kv.getValue0(), builder.build()); }
public Builder enableTrackScores() { this.setParameter(Parameters.TRACK_SCORES, true); return this; }
private CompletableFuture<SearchResult> searchAsync(String query, TimeRangeFilter timeRangeFilter) { Search.Builder builder = new Search.Builder(query) .addType(TYPE); if(timeRangeFilter != null) { final List<String> indices = indexSelector.getIndexNames(timeRangeFilter); builder.addIndices(indices); builder.setParameter("ignore_unavailable", "true"); // ignore unknown index LOG.debug("Executing asynchronous query on {}: {}", indices, query); } else { LOG.debug("Executing asynchronous query on all indices: {}", query); } return executeAsync(builder.build()); }
public Builder setSearchType(SearchType searchType) { return setParameter(Parameters.SEARCH_TYPE, searchType); }
public Builder enableTrackScores() { this.setParameter(Parameters.TRACK_SCORES, true); return this; }