Class SearchRequest.Builder

All Implemented Interfaces:
WithJson<SearchRequest.Builder>, ObjectBuilder<SearchRequest>
Enclosing class:
SearchRequest

public static class SearchRequest.Builder extends RequestBase.AbstractBuilder<SearchRequest.Builder> implements ObjectBuilder<SearchRequest>
Builder for SearchRequest.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • source

      public final SearchRequest.Builder source(@Nullable SourceConfig value)
      Indicates which source fields are returned for matching documents. These fields are returned in the hits._source property of the search response.

      API name: _source

    • source

      Indicates which source fields are returned for matching documents. These fields are returned in the hits._source property of the search response.

      API name: _source

    • aggregations

      public final SearchRequest.Builder aggregations(Map<String,Aggregation> map)
      Defines the aggregations that are run as part of the search request.

      API name: aggregations

      Adds all entries of map to aggregations.

    • aggregations

      public final SearchRequest.Builder aggregations(String key, Aggregation value)
      Defines the aggregations that are run as part of the search request.

      API name: aggregations

      Adds an entry to aggregations.

    • aggregations

      Defines the aggregations that are run as part of the search request.

      API name: aggregations

      Adds an entry to aggregations using a builder lambda.

    • allowNoIndices

      public final SearchRequest.Builder allowNoIndices(@Nullable Boolean value)
      If false, the request returns an error if any wildcard expression, index alias, or _all value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targeting foo*,bar* returns an error if an index starts with foo but no index starts with bar.

      API name: allow_no_indices

    • allowPartialSearchResults

      public final SearchRequest.Builder allowPartialSearchResults(@Nullable Boolean value)
      If true, returns partial results if there are shard request timeouts or shard failures. If false, returns an error with no partial results.

      API name: allow_partial_search_results

    • analyzeWildcard

      public final SearchRequest.Builder analyzeWildcard(@Nullable Boolean value)
      If true, wildcard and prefix queries are analyzed. This parameter can only be used when the q query string parameter is specified.

      API name: analyze_wildcard

    • analyzer

      public final SearchRequest.Builder analyzer(@Nullable String value)
      Analyzer to use for the query string. This parameter can only be used when the q query string parameter is specified.

      API name: analyzer

    • batchedReduceSize

      public final SearchRequest.Builder batchedReduceSize(@Nullable Long value)
      The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.

      API name: batched_reduce_size

    • ccsMinimizeRoundtrips

      public final SearchRequest.Builder ccsMinimizeRoundtrips(@Nullable Boolean value)
      If true, network round-trips between the coordinating node and the remote clusters are minimized when executing cross-cluster search (CCS) requests.

      API name: ccs_minimize_roundtrips

    • collapse

      public final SearchRequest.Builder collapse(@Nullable FieldCollapse value)
      Collapses search results the values of the specified field.

      API name: collapse

    • collapse

      Collapses search results the values of the specified field.

      API name: collapse

    • defaultOperator

      public final SearchRequest.Builder defaultOperator(@Nullable Operator value)
      The default operator for query string query: AND or OR. This parameter can only be used when the q query string parameter is specified.

      API name: default_operator

    • df

      public final SearchRequest.Builder df(@Nullable String value)
      Field to use as default where no field prefix is given in the query string. This parameter can only be used when the q query string parameter is specified.

      API name: df

    • docvalueFields

      public final SearchRequest.Builder docvalueFields(List<FieldAndFormat> list)
      Array of wildcard (*) patterns. The request returns doc values for field names matching these patterns in the hits.fields property of the response.

      API name: docvalue_fields

      Adds all elements of list to docvalueFields.

    • docvalueFields

      public final SearchRequest.Builder docvalueFields(FieldAndFormat value, FieldAndFormat... values)
      Array of wildcard (*) patterns. The request returns doc values for field names matching these patterns in the hits.fields property of the response.

      API name: docvalue_fields

      Adds one or more values to docvalueFields.

    • docvalueFields

      Array of wildcard (*) patterns. The request returns doc values for field names matching these patterns in the hits.fields property of the response.

      API name: docvalue_fields

      Adds a value to docvalueFields using a builder lambda.

    • expandWildcards

      public final SearchRequest.Builder expandWildcards(List<ExpandWildcard> list)
      Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as open,hidden.

      API name: expand_wildcards

      Adds all elements of list to expandWildcards.

    • expandWildcards

      public final SearchRequest.Builder expandWildcards(ExpandWildcard value, ExpandWildcard... values)
      Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as open,hidden.

      API name: expand_wildcards

      Adds one or more values to expandWildcards.

    • explain

      public final SearchRequest.Builder explain(@Nullable Boolean value)
      If true, returns detailed information about score computation as part of a hit.

      API name: explain

    • ext

      public final SearchRequest.Builder ext(Map<String,JsonData> map)
      Configuration of search extensions defined by Elasticsearch plugins.

      API name: ext

      Adds all entries of map to ext.

    • ext

      public final SearchRequest.Builder ext(String key, JsonData value)
      Configuration of search extensions defined by Elasticsearch plugins.

      API name: ext

      Adds an entry to ext.

    • fields

      public final SearchRequest.Builder fields(List<FieldAndFormat> list)
      Array of wildcard (*) patterns. The request returns values for field names matching these patterns in the hits.fields property of the response.

      API name: fields

      Adds all elements of list to fields.

    • fields

      public final SearchRequest.Builder fields(FieldAndFormat value, FieldAndFormat... values)
      Array of wildcard (*) patterns. The request returns values for field names matching these patterns in the hits.fields property of the response.

      API name: fields

      Adds one or more values to fields.

    • fields

      Array of wildcard (*) patterns. The request returns values for field names matching these patterns in the hits.fields property of the response.

      API name: fields

      Adds a value to fields using a builder lambda.

    • from

      public final SearchRequest.Builder from(@Nullable Integer value)
      Starting document offset. Needs to be non-negative. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

      API name: from

    • highlight

      public final SearchRequest.Builder highlight(@Nullable Highlight value)
      Specifies the highlighter to use for retrieving highlighted snippets from one or more fields in your search results.

      API name: highlight

    • highlight

      Specifies the highlighter to use for retrieving highlighted snippets from one or more fields in your search results.

      API name: highlight

    • ignoreThrottled

      public final SearchRequest.Builder ignoreThrottled(@Nullable Boolean value)
      If true, concrete, expanded or aliased indices will be ignored when frozen.

      API name: ignore_throttled

    • ignoreUnavailable

      public final SearchRequest.Builder ignoreUnavailable(@Nullable Boolean value)
      If false, the request returns an error if it targets a missing or closed index.

      API name: ignore_unavailable

    • index

      public final SearchRequest.Builder index(List<String> list)
      Comma-separated list of data streams, indices, and aliases to search. Supports wildcards (*). To search all data streams and indices, omit this parameter or use * or _all.

      API name: index

      Adds all elements of list to index.

    • index

      public final SearchRequest.Builder index(String value, String... values)
      Comma-separated list of data streams, indices, and aliases to search. Supports wildcards (*). To search all data streams and indices, omit this parameter or use * or _all.

      API name: index

      Adds one or more values to index.

    • indicesBoost

      public final SearchRequest.Builder indicesBoost(List<Map<String,Double>> list)
      Boosts the _score of documents from specified indices.

      API name: indices_boost

      Adds all elements of list to indicesBoost.

    • indicesBoost

      public final SearchRequest.Builder indicesBoost(Map<String,Double> value, Map<String,Double>... values)
      Boosts the _score of documents from specified indices.

      API name: indices_boost

      Adds one or more values to indicesBoost.

    • knn

      public final SearchRequest.Builder knn(List<KnnQuery> list)
      Defines the approximate kNN search to run.

      API name: knn

      Adds all elements of list to knn.

    • knn

      public final SearchRequest.Builder knn(KnnQuery value, KnnQuery... values)
      Defines the approximate kNN search to run.

      API name: knn

      Adds one or more values to knn.

    • knn

      Defines the approximate kNN search to run.

      API name: knn

      Adds a value to knn using a builder lambda.

    • lenient

      public final SearchRequest.Builder lenient(@Nullable Boolean value)
      If true, format-based query failures (such as providing text to a numeric field) in the query string will be ignored. This parameter can only be used when the q query string parameter is specified.

      API name: lenient

    • maxConcurrentShardRequests

      public final SearchRequest.Builder maxConcurrentShardRequests(@Nullable Long value)
      Defines the number of concurrent shard requests per node this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests.

      API name: max_concurrent_shard_requests

    • minCompatibleShardNode

      public final SearchRequest.Builder minCompatibleShardNode(@Nullable String value)
      The minimum version of the node that can handle the request Any handling node with a lower version will fail the request.

      API name: min_compatible_shard_node

    • minScore

      public final SearchRequest.Builder minScore(@Nullable Double value)
      Minimum _score for matching documents. Documents with a lower _score are not included in the search results.

      API name: min_score

    • pit

      public final SearchRequest.Builder pit(@Nullable PointInTimeReference value)
      Limits the search to a point in time (PIT). If you provide a PIT, you cannot specify an <index> in the request path.

      API name: pit

    • pit

      Limits the search to a point in time (PIT). If you provide a PIT, you cannot specify an <index> in the request path.

      API name: pit

    • postFilter

      public final SearchRequest.Builder postFilter(@Nullable Query value)
      Use the post_filter parameter to filter search results. The search hits are filtered after the aggregations are calculated. A post filter has no impact on the aggregation results.

      API name: post_filter

    • postFilter

      Use the post_filter parameter to filter search results. The search hits are filtered after the aggregations are calculated. A post filter has no impact on the aggregation results.

      API name: post_filter

    • preFilterShardSize

      public final SearchRequest.Builder preFilterShardSize(@Nullable Long value)
      Defines a threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method (if date filters are mandatory to match but the shard bounds and the query are disjoint). When unspecified, the pre-filter phase is executed if any of these conditions is met: the request targets more than 128 shards; the request targets one or more read-only index; the primary sort of the query targets an indexed field.

      API name: pre_filter_shard_size

    • preference

      public final SearchRequest.Builder preference(@Nullable String value)
      Nodes and shards used for the search. By default, Elasticsearch selects from eligible nodes and shards using adaptive replica selection, accounting for allocation awareness. Valid values are: _only_local to run the search only on shards on the local node; _local to, if possible, run the search on shards on the local node, or if not, select shards using the default method; _only_nodes:<node-id>,<node-id> to run the search on only the specified nodes IDs, where, if suitable shards exist on more than one selected node, use shards on those nodes using the default method, or if none of the specified nodes are available, select shards from any available node using the default method; _prefer_nodes:<node-id>,<node-id> to if possible, run the search on the specified nodes IDs, or if not, select shards using the default method; _shards:<shard>,<shard> to run the search only on the specified shards; <custom-string> (any string that does not start with _) to route searches with the same <custom-string> to the same shards in the same order.

      API name: preference

    • profile

      public final SearchRequest.Builder profile(@Nullable Boolean value)
      Set to true to return detailed timing information about the execution of individual components in a search request. NOTE: This is a debugging tool and adds significant overhead to search execution.

      API name: profile

    • q

      public final SearchRequest.Builder q(@Nullable String value)
      Query in the Lucene query string syntax using query parameter search. Query parameter searches do not support the full Elasticsearch Query DSL but are handy for testing.

      API name: q

    • query

      public final SearchRequest.Builder query(@Nullable Query value)
      Defines the search definition using the Query DSL.

      API name: query

    • query

      Defines the search definition using the Query DSL.

      API name: query

    • rank

      public final SearchRequest.Builder rank(@Nullable Rank value)
      Defines the Reciprocal Rank Fusion (RRF) to use.

      API name: rank

    • rank

      Defines the Reciprocal Rank Fusion (RRF) to use.

      API name: rank

    • requestCache

      public final SearchRequest.Builder requestCache(@Nullable Boolean value)
      If true, the caching of search results is enabled for requests where size is 0. Defaults to index level settings.

      API name: request_cache

    • rescore

      public final SearchRequest.Builder rescore(List<Rescore> list)
      Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the query and post_filter phases.

      API name: rescore

      Adds all elements of list to rescore.

    • rescore

      public final SearchRequest.Builder rescore(Rescore value, Rescore... values)
      Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the query and post_filter phases.

      API name: rescore

      Adds one or more values to rescore.

    • rescore

      Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the query and post_filter phases.

      API name: rescore

      Adds a value to rescore using a builder lambda.

    • routing

      public final SearchRequest.Builder routing(@Nullable String value)
      Custom value used to route operations to a specific shard.

      API name: routing

    • runtimeMappings

      public final SearchRequest.Builder runtimeMappings(Map<String,RuntimeField> map)
      Defines one or more runtime fields in the search request. These fields take precedence over mapped fields with the same name.

      API name: runtime_mappings

      Adds all entries of map to runtimeMappings.

    • runtimeMappings

      public final SearchRequest.Builder runtimeMappings(String key, RuntimeField value)
      Defines one or more runtime fields in the search request. These fields take precedence over mapped fields with the same name.

      API name: runtime_mappings

      Adds an entry to runtimeMappings.

    • runtimeMappings

      Defines one or more runtime fields in the search request. These fields take precedence over mapped fields with the same name.

      API name: runtime_mappings

      Adds an entry to runtimeMappings using a builder lambda.

    • scriptFields

      public final SearchRequest.Builder scriptFields(Map<String,ScriptField> map)
      Retrieve a script evaluation (based on different fields) for each hit.

      API name: script_fields

      Adds all entries of map to scriptFields.

    • scriptFields

      public final SearchRequest.Builder scriptFields(String key, ScriptField value)
      Retrieve a script evaluation (based on different fields) for each hit.

      API name: script_fields

      Adds an entry to scriptFields.

    • scriptFields

      Retrieve a script evaluation (based on different fields) for each hit.

      API name: script_fields

      Adds an entry to scriptFields using a builder lambda.

    • scroll

      public final SearchRequest.Builder scroll(@Nullable Time value)
      Period to retain the search context for scrolling. See Scroll search results. By default, this value cannot exceed 1d (24 hours). You can change this limit using the search.max_keep_alive cluster-level setting.

      API name: scroll

    • scroll

      Period to retain the search context for scrolling. See Scroll search results. By default, this value cannot exceed 1d (24 hours). You can change this limit using the search.max_keep_alive cluster-level setting.

      API name: scroll

    • searchAfter

      public final SearchRequest.Builder searchAfter(List<FieldValue> list)
      Used to retrieve the next page of hits using a set of sort values from the previous page.

      API name: search_after

      Adds all elements of list to searchAfter.

    • searchAfter

      public final SearchRequest.Builder searchAfter(FieldValue value, FieldValue... values)
      Used to retrieve the next page of hits using a set of sort values from the previous page.

      API name: search_after

      Adds one or more values to searchAfter.

    • searchAfter

      Used to retrieve the next page of hits using a set of sort values from the previous page.

      API name: search_after

      Adds a value to searchAfter using a builder lambda.

    • searchType

      public final SearchRequest.Builder searchType(@Nullable SearchType value)
      How distributed term frequencies are calculated for relevance scoring.

      API name: search_type

    • seqNoPrimaryTerm

      public final SearchRequest.Builder seqNoPrimaryTerm(@Nullable Boolean value)
      If true, returns sequence number and primary term of the last modification of each hit.

      API name: seq_no_primary_term

    • size

      public final SearchRequest.Builder size(@Nullable Integer value)
      The number of hits to return. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

      API name: size

    • slice

      public final SearchRequest.Builder slice(@Nullable SlicedScroll value)
      Can be used to split a scrolled search into multiple slices that can be consumed independently.

      API name: slice

    • slice

      Can be used to split a scrolled search into multiple slices that can be consumed independently.

      API name: slice

    • sort

      public final SearchRequest.Builder sort(List<SortOptions> list)
      A comma-separated list of <field>:<direction> pairs.

      API name: sort

      Adds all elements of list to sort.

    • sort

      public final SearchRequest.Builder sort(SortOptions value, SortOptions... values)
      A comma-separated list of <field>:<direction> pairs.

      API name: sort

      Adds one or more values to sort.

    • sort

      A comma-separated list of <field>:<direction> pairs.

      API name: sort

      Adds a value to sort using a builder lambda.

    • stats

      public final SearchRequest.Builder stats(List<String> list)
      Stats groups to associate with the search. Each group maintains a statistics aggregation for its associated searches. You can retrieve these stats using the indices stats API.

      API name: stats

      Adds all elements of list to stats.

    • stats

      public final SearchRequest.Builder stats(String value, String... values)
      Stats groups to associate with the search. Each group maintains a statistics aggregation for its associated searches. You can retrieve these stats using the indices stats API.

      API name: stats

      Adds one or more values to stats.

    • storedFields

      public final SearchRequest.Builder storedFields(List<String> list)
      List of stored fields to return as part of a hit. If no fields are specified, no stored fields are included in the response. If this field is specified, the _source parameter defaults to false. You can pass _source: true to return both source fields and stored fields in the search response.

      API name: stored_fields

      Adds all elements of list to storedFields.

    • storedFields

      public final SearchRequest.Builder storedFields(String value, String... values)
      List of stored fields to return as part of a hit. If no fields are specified, no stored fields are included in the response. If this field is specified, the _source parameter defaults to false. You can pass _source: true to return both source fields and stored fields in the search response.

      API name: stored_fields

      Adds one or more values to storedFields.

    • suggest

      public final SearchRequest.Builder suggest(@Nullable Suggester value)
      Defines a suggester that provides similar looking terms based on a provided text.

      API name: suggest

    • suggest

      Defines a suggester that provides similar looking terms based on a provided text.

      API name: suggest

    • terminateAfter

      public final SearchRequest.Builder terminateAfter(@Nullable Long value)
      Maximum number of documents to collect for each shard. If a query reaches this limit, Elasticsearch terminates the query early. Elasticsearch collects documents before sorting. Use with caution. Elasticsearch applies this parameter to each shard handling the request. When possible, let Elasticsearch perform early termination automatically. Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. If set to 0 (default), the query does not terminate early.

      API name: terminate_after

    • timeout

      public final SearchRequest.Builder timeout(@Nullable String value)
      Specifies the period of time to wait for a response from each shard. If no response is received before the timeout expires, the request fails and returns an error. Defaults to no timeout.

      API name: timeout

    • trackScores

      public final SearchRequest.Builder trackScores(@Nullable Boolean value)
      If true, calculate and return document scores, even if the scores are not used for sorting.

      API name: track_scores

    • trackTotalHits

      public final SearchRequest.Builder trackTotalHits(@Nullable TrackHits value)
      Number of hits matching the query to count accurately. If true, the exact number of hits is returned at the cost of some performance. If false, the response does not include the total number of hits matching the query.

      API name: track_total_hits

    • trackTotalHits

      Number of hits matching the query to count accurately. If true, the exact number of hits is returned at the cost of some performance. If false, the response does not include the total number of hits matching the query.

      API name: track_total_hits

    • version

      public final SearchRequest.Builder version(@Nullable Boolean value)
      If true, returns document version as part of a hit.

      API name: version

    • self

      protected SearchRequest.Builder self()
      Specified by:
      self in class RequestBase.AbstractBuilder<SearchRequest.Builder>
    • build

      public SearchRequest build()
      Builds a SearchRequest.
      Specified by:
      build in interface ObjectBuilder<SearchRequest>
      Throws:
      NullPointerException - if some of the required fields are null.