Class SearchRequestBuilder


public class SearchRequestBuilder extends ActionRequestBuilder<SearchRequest,SearchResponse>
A search action request builder.
  • Constructor Details

  • Method Details

    • setIndices

      public SearchRequestBuilder setIndices(String... indices)
      Sets the indices the search will be executed on.
    • setTypes

      @Deprecated public SearchRequestBuilder setTypes(String... types)
      Deprecated.
      Types are going away, prefer filtering on a field.
      The document types to execute the search against. Defaults to be executed against all types.
    • setSearchType

      public SearchRequestBuilder setSearchType(SearchType searchType)
      The search type to execute, defaults to SearchType.DEFAULT.
    • setSearchType

      public SearchRequestBuilder setSearchType(String searchType)
      The a string representation search type to execute, defaults to SearchType.DEFAULT. Can be one of "dfs_query_then_fetch" or "query_then_fetch".
    • setScroll

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

      public SearchRequestBuilder setScroll(org.elasticsearch.core.TimeValue keepAlive)
      If set, will enable scrolling of the search request for the specified timeout.
    • setScroll

      public SearchRequestBuilder setScroll(String keepAlive)
      If set, will enable scrolling of the search request for the specified timeout.
    • setTimeout

      public SearchRequestBuilder setTimeout(org.elasticsearch.core.TimeValue timeout)
      An optional timeout to control how long search is allowed to take.
    • setTerminateAfter

      public SearchRequestBuilder setTerminateAfter(int terminateAfter)
      An optional document count, upon collecting which the search query will early terminate
    • setRouting

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

      public SearchRequestBuilder setRouting(String... routing)
      The routing values to control the shards that the search will be executed on.
    • setPreference

      public SearchRequestBuilder setPreference(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.
    • setIndicesOptions

      public SearchRequestBuilder setIndicesOptions(IndicesOptions indicesOptions)
      Specifies what type of requested indices to ignore and wildcard indices expressions.

      For example indices that don't exist.

    • setQuery

      public SearchRequestBuilder setQuery(QueryBuilder queryBuilder)
      Constructs a new search source builder with a search query.
      See Also:
      QueryBuilders
    • setPostFilter

      public SearchRequestBuilder setPostFilter(QueryBuilder postFilter)
      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.
    • setMinScore

      public SearchRequestBuilder setMinScore(float minScore)
      Sets the minimum score below which docs will be filtered out.
    • setFrom

      public SearchRequestBuilder setFrom(int from)
      From index to start the search from. Defaults to 0.
    • setSize

      public SearchRequestBuilder setSize(int size)
      The number of search hits to return. Defaults to 10.
    • setExplain

      public SearchRequestBuilder setExplain(boolean explain)
      Should each SearchHit be returned with an explanation of the hit (ranking).
    • setVersion

      public SearchRequestBuilder setVersion(boolean version)
      Should each SearchHit be returned with its version.
    • seqNoAndPrimaryTerm

      public SearchRequestBuilder seqNoAndPrimaryTerm(boolean seqNoAndPrimaryTerm)
      Should each SearchHit be returned with the sequence number and primary term of the last modification of the document.
    • addIndexBoost

      public SearchRequestBuilder addIndexBoost(String index, float indexBoost)
      Sets the boost a specific index will receive when the query is executed against it.
      Parameters:
      index - The index to apply the boost against
      indexBoost - The boost to apply to the index
    • setStats

      public SearchRequestBuilder setStats(String... statsGroups)
      The stats groups this request will be aggregated under.
    • setStats

      public SearchRequestBuilder setStats(List<String> statsGroups)
      The stats groups this request will be aggregated under.
    • setFetchSource

      public SearchRequestBuilder setFetchSource(boolean fetch)
      Indicates whether the response should contain the stored _source for every hit
    • setFetchSource

      public SearchRequestBuilder setFetchSource(@Nullable String include, @Nullable String exclude)
      Indicate that _source should be returned with every hit, with an "include" and/or "exclude" set which can include simple wildcard elements.
      Parameters:
      include - An optional include (optionally wildcarded) pattern to filter the returned _source
      exclude - An optional exclude (optionally wildcarded) pattern to filter the returned _source
    • setFetchSource

      public SearchRequestBuilder setFetchSource(@Nullable String[] includes, @Nullable String[] excludes)
      Indicate that _source should be returned with every hit, with an "include" and/or "exclude" set which can include simple wildcard elements.
      Parameters:
      includes - An optional list of include (optionally wildcarded) pattern to filter the returned _source
      excludes - An optional list of exclude (optionally wildcarded) pattern to filter the returned _source
    • addDocValueField

      public SearchRequestBuilder addDocValueField(String name, String format)
      Adds a docvalue based field to load and return. The field does not have to be stored, but its recommended to use non analyzed or numeric fields.
      Parameters:
      name - The field to get from the docvalue
    • addDocValueField

      public SearchRequestBuilder addDocValueField(String name)
      Adds a docvalue based field to load and return. The field does not have to be stored, but its recommended to use non analyzed or numeric fields.
      Parameters:
      name - The field to get from the docvalue
    • addFetchField

      public SearchRequestBuilder addFetchField(String name)
      Adds a field to load and return. The field must be present in the document _source.
      Parameters:
      name - The field to load
    • addFetchField

      public SearchRequestBuilder addFetchField(FieldAndFormat fetchField)
      Adds a field to load and return. The field must be present in the document _source.
      Parameters:
      fetchField - a FieldAndFormat specifying the field pattern, optional format (for example a date format) and whether this field pattern sould also include unmapped fields
    • addStoredField

      public SearchRequestBuilder addStoredField(String field)
      Adds a stored field to load and return (note, it must be stored) as part of the search request.
    • addScriptField

      public SearchRequestBuilder addScriptField(String name, Script script)
      Adds a script based field to load and return. The field does not have to be stored, but its recommended to use non analyzed or numeric fields.
      Parameters:
      name - The name that will represent this value in the return hit
      script - The script to use
    • addSort

      public SearchRequestBuilder addSort(String field, SortOrder order)
      Adds a sort against the given field name and the sort ordering.
      Parameters:
      field - The name of the field
      order - The sort ordering
    • addSort

      public SearchRequestBuilder addSort(SortBuilder<?> sort)
      Adds a generic sort builder.
      See Also:
      SortBuilders
    • searchAfter

      public SearchRequestBuilder searchAfter(Object[] values)
      Set the sort values that indicates which docs this request should "search after".
    • slice

      public SearchRequestBuilder slice(SliceBuilder builder)
    • setTrackScores

      public SearchRequestBuilder setTrackScores(boolean trackScores)
      Applies when sorting, and controls if scores will be tracked as well. Defaults to false.
    • setTrackTotalHits

      public SearchRequestBuilder setTrackTotalHits(boolean trackTotalHits)
      Indicates if the total hit count for the query should be tracked. Requests will count total hit count accurately up to 10,000 by default, see setTrackTotalHitsUpTo(int) to change this value or set to true/false to always/never count accurately.
    • setTrackTotalHitsUpTo

      public SearchRequestBuilder setTrackTotalHitsUpTo(int trackTotalHitsUpTo)
      Indicates the total hit count that should be tracked accurately or null if the value is unset. Defaults to 10,000.
    • storedFields

      public SearchRequestBuilder storedFields(String... fields)
      Adds stored fields to load and return (note, it must be stored) as part of the search request. To disable the stored fields entirely (source and metadata fields) use storedField("_none_").
    • addAggregation

      public SearchRequestBuilder addAggregation(AggregationBuilder aggregation)
      Adds an aggregation to the search operation.
    • addAggregation

      public SearchRequestBuilder addAggregation(PipelineAggregationBuilder aggregation)
      Adds an aggregation to the search operation.
    • highlighter

      public SearchRequestBuilder highlighter(HighlightBuilder highlightBuilder)
    • suggest

      public SearchRequestBuilder suggest(SuggestBuilder suggestBuilder)
    • setRescorer

      public SearchRequestBuilder setRescorer(RescorerBuilder<?> rescorer)
      Clears all rescorers on the builder and sets the first one. To use multiple rescore windows use addRescorer(org.elasticsearch.search.rescore.RescorerBuilder, int).
      Parameters:
      rescorer - rescorer configuration
      Returns:
      this for chaining
    • setRescorer

      public SearchRequestBuilder setRescorer(RescorerBuilder rescorer, int window)
      Clears all rescorers on the builder and sets the first one. To use multiple rescore windows use addRescorer(org.elasticsearch.search.rescore.RescorerBuilder, int).
      Parameters:
      rescorer - rescorer configuration
      window - rescore window
      Returns:
      this for chaining
    • addRescorer

      public SearchRequestBuilder addRescorer(RescorerBuilder<?> rescorer)
      Adds a new rescorer.
      Parameters:
      rescorer - rescorer configuration
      Returns:
      this for chaining
    • addRescorer

      public SearchRequestBuilder addRescorer(RescorerBuilder<?> rescorer, int window)
      Adds a new rescorer.
      Parameters:
      rescorer - rescorer configuration
      window - rescore window
      Returns:
      this for chaining
    • clearRescorers

      public SearchRequestBuilder clearRescorers()
      Clears all rescorers from the builder.
      Returns:
      this for chaining
    • setSource

      public SearchRequestBuilder setSource(SearchSourceBuilder source)
      Sets the source of the request as a SearchSourceBuilder.
    • setRequestCache

      public SearchRequestBuilder setRequestCache(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).
    • setAllowPartialSearchResults

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

      public SearchRequestBuilder setProfile(boolean profile)
      Should the query be profiled. Defaults to false
    • setCollapse

      public SearchRequestBuilder setCollapse(CollapseBuilder collapse)
    • setPointInTime

      public SearchRequestBuilder setPointInTime(PointInTimeBuilder pointInTimeBuilder)
      If specified, Elasticsearch will execute this search request using reader contexts from that point in time.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setBatchedReduceSize

      public SearchRequestBuilder 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.
    • setMaxConcurrentShardRequests

      public SearchRequestBuilder 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 SearchRequestBuilder 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 its rewrite method ie. 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
    • setRuntimeMappings

      public SearchRequestBuilder setRuntimeMappings(Map<String,Object> runtimeMappings)
      Set runtime mappings to create runtime fields that exist only as part of this particular search.