/** * Customization hook to modify a generated {@link SearchRequest} prior to its execution. Eg. by setting the * {@link SearchRequest#indicesOptions(IndicesOptions) indices options} if applicable. * * @param request the generated {@link SearchRequest}. * @return never {@literal null}. */ protected SearchRequest prepareSearchRequest(SearchRequest request) { if (indicesOptions == null) { return request; } return request.indicesOptions(indicesOptions); }
private static void addSearchRequestParams(Params params, SearchRequest searchRequest) { params.putParam("typed_keys", "true"); params.withRouting(searchRequest.routing()); params.withPreference(searchRequest.preference()); params.withIndicesOptions(searchRequest.indicesOptions()); params.putParam("search_type", searchRequest.searchType().name().toLowerCase(Locale.ROOT)); if (searchRequest.requestCache() != null) { params.putParam("request_cache", Boolean.toString(searchRequest.requestCache())); } if (searchRequest.allowPartialSearchResults() != null) { params.putParam("allow_partial_search_results", Boolean.toString(searchRequest.allowPartialSearchResults())); } params.putParam("batched_reduce_size", Integer.toString(searchRequest.getBatchedReduceSize())); if (searchRequest.scroll() != null) { params.putParam("scroll", searchRequest.scroll().keepAlive()); } }
request.indicesOptions(query.getIndicesOptions());
/** * Specifies what type of requested indices to ignore and wildcard indices expressions. * <p> * For example indices that don't exist. */ public SearchRequestBuilder setIndicesOptions(IndicesOptions indicesOptions) { request().indicesOptions(indicesOptions); return this; }
/** * Set the IndicesOptions for controlling unavailable indices */ public DeleteByQueryRequest setIndicesOptions(IndicesOptions indicesOptions) { getSearchRequest().indicesOptions(indicesOptions); return this; }
/** * Set the IndicesOptions for controlling unavailable indices */ public UpdateByQueryRequest setIndicesOptions(IndicesOptions indicesOptions) { getSearchRequest().indicesOptions(indicesOptions); return this; }
request.indicesOptions(query.getIndicesOptions());
@Override public IndicesOptions indicesOptions() { assert getSearchRequest() != null; return getSearchRequest().indicesOptions(); }
@Override public IndicesOptions indicesOptions() { assert getSearchRequest() != null; return getSearchRequest().indicesOptions(); }
/** * Add a search request to execute. Note, the order is important, the search response will be returned in the * same order as the search requests. */ public MultiSearchRequestBuilder add(SearchRequestBuilder request) { if (request.request().indicesOptions() == SearchRequest.DEFAULT_INDICES_OPTIONS && request().indicesOptions() != SearchRequest.DEFAULT_INDICES_OPTIONS) { request.request().indicesOptions(request().indicesOptions()); } super.request.add(request); return this; }
private Map<String, Float> resolveIndexBoosts(SearchRequest searchRequest, ClusterState clusterState) { if (searchRequest.source() == null) { return Collections.emptyMap(); } SearchSourceBuilder source = searchRequest.source(); if (source.indexBoosts() == null) { return Collections.emptyMap(); } Map<String, Float> concreteIndexBoosts = new HashMap<>(); for (SearchSourceBuilder.IndexBoost ib : source.indexBoosts()) { Index[] concreteIndices = indexNameExpressionResolver.concreteIndices(clusterState, searchRequest.indicesOptions(), ib.getIndex()); for (Index concreteIndex : concreteIndices) { concreteIndexBoosts.putIfAbsent(concreteIndex.getUUID(), ib.getBoost()); } } return Collections.unmodifiableMap(concreteIndexBoosts); }
/** * Add a search request to execute. Note, the order is important, the search response will be returned in the * same order as the search requests. * <p> * If ignoreIndices has been set on the search request, then the indicesOptions of the multi search request * will not be used (if set). */ public MultiSearchRequestBuilder add(SearchRequest request) { if (request.indicesOptions() == IndicesOptions.strictExpandOpenAndForbidClosed() && request().indicesOptions() != IndicesOptions.strictExpandOpenAndForbidClosed()) { request.indicesOptions(request().indicesOptions()); } super.request.add(request); return this; }
xContentBuilder.field("index", request.indices()); if (request.indicesOptions() != null && request.indicesOptions() != SearchRequest.DEFAULT_INDICES_OPTIONS) { if (request.indicesOptions().expandWildcardsOpen() && request.indicesOptions().expandWildcardsClosed()) { xContentBuilder.field("expand_wildcards", "all"); } else if (request.indicesOptions().expandWildcardsOpen()) { xContentBuilder.field("expand_wildcards", "open"); } else if (request.indicesOptions().expandWildcardsClosed()) { xContentBuilder.field("expand_wildcards", "closed"); } else { xContentBuilder.field("expand_wildcards", "none"); xContentBuilder.field("ignore_unavailable", request.indicesOptions().ignoreUnavailable()); xContentBuilder.field("allow_no_indices", request.indicesOptions().allowNoIndices());
final Map<String, OriginalIndices> remoteClusterIndices = remoteClusterService.groupIndices(searchRequest.indicesOptions(), searchRequest.indices(), idx -> indexNameExpressionResolver.hasIndexOrAlias(idx, clusterState)); OriginalIndices localIndices = remoteClusterIndices.remove(RemoteClusterAware.LOCAL_CLUSTER_GROUP_KEY); clusterState.getNodes().getDataNodes().size(), SearchResponse.Clusters.EMPTY); } else { remoteClusterService.collectSearchShards(searchRequest.indicesOptions(), searchRequest.preference(), searchRequest.routing(), remoteClusterIndices, ActionListener.wrap((searchShardsResponses) -> { List<SearchShardIterator> remoteShardIterators = new ArrayList<>();
@Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { SearchRequest countRequest = new SearchRequest(Strings.splitStringByCommaToArray(request.param("index"))); countRequest.indicesOptions(IndicesOptions.fromRequest(request, countRequest.indicesOptions())); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0); countRequest.source(searchSourceBuilder);
final Index[] indices = resolveLocalIndices(localIndices, searchRequest.indicesOptions(), clusterState, timeProvider); Map<String, AliasFilter> aliasFilter = buildPerIndexAliasFilter(searchRequest, clusterState, indices, remoteAliasMap); Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(clusterState, searchRequest.routing(),
searchRequest.indicesOptions(LENIENT_EXPAND_OPEN);
searchRequest.indicesOptions(IndicesOptions.lenientExpandOpen());
searchRequest.indicesOptions(LENIENT_EXPAND_OPEN);
searchRequest.routing(request.param("routing")); searchRequest.preference(request.param("preference")); searchRequest.indicesOptions(IndicesOptions.fromRequest(request, searchRequest.indicesOptions()));