Class SearchRequest

All Implemented Interfaces:
IndicesRequest, IndicesRequest.Replaceable, Writeable, TaskAwareRequest

public final class SearchRequest
extends ActionRequest
implements IndicesRequest.Replaceable
A request to execute search against one or more indices (or all). Best created using Requests.searchRequest(String...).

Note, the search source(org.elasticsearch.search.builder.SearchSourceBuilder) is required. The search source is the different search options, including aggregations and such.

See Also:
Requests.searchRequest(String...), Client.search(SearchRequest), SearchResponse
  • Field Details

  • Constructor Details

    • SearchRequest

      public SearchRequest()
    • SearchRequest

      public SearchRequest​(SearchRequest searchRequest)
      Constructs a new search request from the provided search request
    • SearchRequest

      public SearchRequest​(java.lang.String... indices)
      Constructs a new search request against the indices. No indices provided here means that search will run against all indices.
    • SearchRequest

      public SearchRequest​(java.lang.String[] indices, SearchSourceBuilder source)
      Constructs a new search request against the provided indices with the given search source.
    • SearchRequest

      public SearchRequest​(StreamInput in) throws java.io.IOException
      Constructs a new search request from reading the specified stream.
      Parameters:
      in - The stream the request is read from
      Throws:
      java.io.IOException - if there is an issue reading the stream
  • Method Details

    • writeTo

      public void writeTo​(StreamOutput out) throws java.io.IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Overrides:
      writeTo in class ActionRequest
      Throws:
      java.io.IOException
    • validate

      Specified by:
      validate in class ActionRequest
    • indices

      public SearchRequest indices​(java.lang.String... indices)
      Sets the indices the search will be executed on.
      Specified by:
      indices in interface IndicesRequest.Replaceable
    • indicesOptions

      public IndicesOptions indicesOptions()
      Description copied from interface: IndicesRequest
      Returns the indices options used to resolve indices. They tell for instance whether a single index is accepted, whether an empty array will be converted to _all, and how wildcards will be expanded if needed.
      Specified by:
      indicesOptions in interface IndicesRequest
    • indicesOptions

      public SearchRequest indicesOptions​(IndicesOptions indicesOptions)
    • isCcsMinimizeRoundtrips

      public boolean isCcsMinimizeRoundtrips()
      Returns whether network round-trips should be minimized when executing cross-cluster search requests. Defaults to true.
    • setCcsMinimizeRoundtrips

      public void setCcsMinimizeRoundtrips​(boolean ccsMinimizeRoundtrips)
      Sets whether network round-trips should be minimized when executing cross-cluster search requests. Defaults to true.
    • types

      @Deprecated public java.lang.String[] types()
      Deprecated.
      Types are in the process of being removed. Instead of using a type, prefer to filter on a field on the document.
      The document types to execute the search against. Defaults to be executed against all types.
    • types

      @Deprecated public SearchRequest types​(java.lang.String... types)
      Deprecated.
      Types are in the process of being removed. Instead of using a type, prefer to filter on a field on the document.
      The document types to execute the search against. Defaults to be executed against all types.
    • routing

      public java.lang.String routing()
      A comma separated list of routing values to control the shards the search will be executed on.
    • routing

      public SearchRequest routing​(java.lang.String routing)
      A comma separated list of routing values to control the shards the search will be executed on.
    • routing

      public SearchRequest routing​(java.lang.String... routings)
      The routing values to control the shards that the search will be executed on.
    • preference

      public SearchRequest preference​(java.lang.String preference)
      Sets the preference to execute the search. Defaults to randomize across shards. Can be set to _local to prefer local shards or a custom value, which guarantees that the same order will be used across different requests.
    • preference

      public java.lang.String preference()
    • searchType

      public SearchRequest searchType​(SearchType searchType)
      The search type to execute, defaults to SearchType.DEFAULT.
    • searchType

      public SearchRequest searchType​(java.lang.String searchType)
      The a string representation search type to execute, defaults to SearchType.DEFAULT. Can be one of "dfs_query_then_fetch"/"dfsQueryThenFetch", "dfs_query_and_fetch"/"dfsQueryAndFetch", "query_then_fetch"/"queryThenFetch", and "query_and_fetch"/"queryAndFetch".
    • source

      public SearchRequest source​(SearchSourceBuilder sourceBuilder)
      The source of the search request.
    • source

      public SearchSourceBuilder source()
      The search source to execute.
    • searchType

      public SearchType searchType()
      The tye of search to execute.
    • indices

      public java.lang.String[] indices()
      The indices
      Specified by:
      indices in interface IndicesRequest
    • scroll

      public Scroll scroll()
      If set, will enable scrolling of the search request.
    • scroll

      public SearchRequest scroll​(Scroll scroll)
      If set, will enable scrolling of the search request.
    • scroll

      public SearchRequest scroll​(TimeValue keepAlive)
      If set, will enable scrolling of the search request for the specified timeout.
    • scroll

      public SearchRequest scroll​(java.lang.String keepAlive)
      If set, will enable scrolling of the search request for the specified timeout.
    • requestCache

      public SearchRequest requestCache​(java.lang.Boolean requestCache)
      Sets if this request should use the request cache or not, assuming that it can (for example, if "now" is used, it will never be cached). By default (not set, or null, will default to the index level setting if request cache is enabled or not).
    • requestCache

      public java.lang.Boolean requestCache()
    • allowPartialSearchResults

      public SearchRequest allowPartialSearchResults​(boolean allowPartialSearchResults)
      Sets if this request should allow partial results. (If method is not called, will default to the cluster level setting).
    • allowPartialSearchResults

      public java.lang.Boolean allowPartialSearchResults()
    • setBatchedReduceSize

      public void setBatchedReduceSize​(int batchedReduceSize)
      Sets 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.
    • getBatchedReduceSize

      public int getBatchedReduceSize()
      Returns 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.
    • getMaxConcurrentShardRequests

      public int getMaxConcurrentShardRequests()
      Returns the number of shard requests that should be executed concurrently on a single node. This value should be used as a protection mechanism to reduce the number of shard requests fired per high level search request. Searches that hit the entire cluster can be throttled with this number to reduce the cluster load. The default is 5
    • setMaxConcurrentShardRequests

      public void setMaxConcurrentShardRequests​(int maxConcurrentShardRequests)
      Sets the number of shard requests that should be executed concurrently on a single node. This value should be used as a protection mechanism to reduce the number of shard requests fired per high level search request. Searches that hit the entire cluster can be throttled with this number to reduce the cluster load. The default is 5
    • setPreFilterShardSize

      public void setPreFilterShardSize​(int preFilterShardSize)
      Sets a threshold that enforces a pre-filter roundtrip to pre-filter 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 it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint. The default is 128
    • getPreFilterShardSize

      public int getPreFilterShardSize()
      Returns a threshold that enforces a pre-filter roundtrip to pre-filter 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 it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint. The default is 128
    • isSuggestOnly

      public boolean isSuggestOnly()
      Returns:
      true if the request only has suggest
    • createTask

      public Task createTask​(long id, java.lang.String type, java.lang.String action, TaskId parentTaskId, java.util.Map<java.lang.String,​java.lang.String> headers)
      Description copied from interface: TaskAwareRequest
      Returns the task object that should be used to keep track of the processing of the request.
      Specified by:
      createTask in interface TaskAwareRequest
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object