Class SearchContext

java.lang.Object
org.elasticsearch.search.internal.SearchContext
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable, Releasable
Direct Known Subclasses:
FilteredSearchContext

public abstract class SearchContext
extends java.lang.Object
implements Releasable
This class encapsulates the state needed to execute a search. It holds a reference to the shards point in time snapshot (IndexReader / ContextIndexSearcher) and allows passing on state from one query / fetch phase to another.
  • Field Details

    • DEFAULT_TERMINATE_AFTER

      public static final int DEFAULT_TERMINATE_AFTER
      See Also:
      Constant Field Values
    • TRACK_TOTAL_HITS_ACCURATE

      public static final int TRACK_TOTAL_HITS_ACCURATE
      See Also:
      Constant Field Values
    • TRACK_TOTAL_HITS_DISABLED

      public static final int TRACK_TOTAL_HITS_DISABLED
      See Also:
      Constant Field Values
    • DEFAULT_TRACK_TOTAL_HITS_UP_TO

      public static final int DEFAULT_TRACK_TOTAL_HITS_UP_TO
      See Also:
      Constant Field Values
    • releasables

      protected final java.util.List<Releasable> releasables
  • Constructor Details

    • SearchContext

      protected SearchContext()
  • Method Details

    • setTask

      public abstract void setTask​(SearchShardTask task)
    • getTask

      public abstract SearchShardTask getTask()
    • isCancelled

      public abstract boolean isCancelled()
    • close

      public final void close()
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Specified by:
      close in interface Releasable
    • preProcess

      public abstract void preProcess​(boolean rewrite)
      Should be called before executing the main query and after all other parameters have been set.
      Parameters:
      rewrite - if the set query should be rewritten against the searcher returned from searcher()
    • buildFilteredQuery

      public abstract org.apache.lucene.search.Query buildFilteredQuery​(org.apache.lucene.search.Query query)
      Automatically apply all required filters to the given query such as alias filters, types filters, etc.
    • id

      public abstract ShardSearchContextId id()
    • source

      public abstract java.lang.String source()
    • request

      public abstract ShardSearchRequest request()
    • searchType

      public abstract SearchType searchType()
    • shardTarget

      public abstract SearchShardTarget shardTarget()
    • numberOfShards

      public abstract int numberOfShards()
    • scrollContext

      public abstract ScrollContext scrollContext()
    • aggregations

      public abstract SearchContextAggregations aggregations()
    • aggregations

      public abstract SearchContext aggregations​(SearchContextAggregations aggregations)
    • addSearchExt

      public abstract void addSearchExt​(SearchExtBuilder searchExtBuilder)
    • getSearchExt

      public abstract SearchExtBuilder getSearchExt​(java.lang.String name)
    • highlight

      public abstract SearchHighlightContext highlight()
    • highlight

      public abstract void highlight​(SearchHighlightContext highlight)
    • innerHits

      public InnerHitsContext innerHits()
    • suggest

      public abstract SuggestionSearchContext suggest()
    • suggest

      public abstract void suggest​(SuggestionSearchContext suggest)
    • rescore

      public abstract java.util.List<RescoreContext> rescore()
      Returns:
      list of all rescore contexts. empty if there aren't any.
    • addRescore

      public abstract void addRescore​(RescoreContext rescore)
    • rescoreDocIds

      public final RescoreDocIds rescoreDocIds()
    • assignRescoreDocIds

      public final void assignRescoreDocIds​(RescoreDocIds rescoreDocIds)
    • hasScriptFields

      public abstract boolean hasScriptFields()
    • scriptFields

      public abstract ScriptFieldsContext scriptFields()
    • sourceRequested

      public abstract boolean sourceRequested()
      A shortcut function to see whether there is a fetchSourceContext and it says the source is requested.
    • hasFetchSourceContext

      public abstract boolean hasFetchSourceContext()
    • fetchSourceContext

      public abstract FetchSourceContext fetchSourceContext()
    • fetchSourceContext

      public abstract SearchContext fetchSourceContext​(FetchSourceContext fetchSourceContext)
    • docValuesContext

      public abstract FetchDocValuesContext docValuesContext()
    • docValuesContext

      public abstract SearchContext docValuesContext​(FetchDocValuesContext docValuesContext)
    • fetchFieldsContext

      public abstract FetchFieldsContext fetchFieldsContext()
      The context related to retrieving fields.
    • fetchFieldsContext

      public abstract SearchContext fetchFieldsContext​(FetchFieldsContext fetchFieldsContext)
      Sets the context related to retrieving fields.
    • searcher

      public abstract ContextIndexSearcher searcher()
    • indexShard

      public abstract IndexShard indexShard()
    • bitsetFilterCache

      public abstract BitsetFilterCache bitsetFilterCache()
    • timeout

      public abstract org.elasticsearch.common.unit.TimeValue timeout()
    • timeout

      public abstract void timeout​(org.elasticsearch.common.unit.TimeValue timeout)
    • terminateAfter

      public abstract int terminateAfter()
    • terminateAfter

      public abstract void terminateAfter​(int terminateAfter)
    • lowLevelCancellation

      public abstract boolean lowLevelCancellation()
      Indicates if the current index should perform frequent low level search cancellation check. Enabling low-level checks will make long running searches to react to the cancellation request faster. However, since it will produce more cancellation checks it might slow the search performance down.
    • minimumScore

      public abstract SearchContext minimumScore​(float minimumScore)
    • minimumScore

      public abstract java.lang.Float minimumScore()
    • sort

      public abstract SearchContext sort​(SortAndFormats sort)
    • sort

      public abstract SortAndFormats sort()
    • trackScores

      public abstract SearchContext trackScores​(boolean trackScores)
    • trackScores

      public abstract boolean trackScores()
    • trackTotalHitsUpTo

      public abstract SearchContext trackTotalHitsUpTo​(int trackTotalHits)
    • trackTotalHitsUpTo

      public abstract int trackTotalHitsUpTo()
      Indicates the total number of hits to count accurately. Defaults to DEFAULT_TRACK_TOTAL_HITS_UP_TO.
    • searchAfter

      public abstract SearchContext searchAfter​(org.apache.lucene.search.FieldDoc searchAfter)
    • searchAfter

      public abstract org.apache.lucene.search.FieldDoc searchAfter()
    • collapse

      public abstract SearchContext collapse​(CollapseContext collapse)
    • collapse

      public abstract CollapseContext collapse()
    • parsedPostFilter

      public abstract SearchContext parsedPostFilter​(ParsedQuery postFilter)
    • parsedPostFilter

      public abstract ParsedQuery parsedPostFilter()
    • parsedQuery

      public abstract SearchContext parsedQuery​(ParsedQuery query)
    • parsedQuery

      public abstract ParsedQuery parsedQuery()
    • query

      public abstract org.apache.lucene.search.Query query()
      The query to execute, might be rewritten.
    • from

      public abstract int from()
    • from

      public abstract SearchContext from​(int from)
    • size

      public abstract int size()
    • size

      public abstract SearchContext size​(int size)
    • hasStoredFields

      public abstract boolean hasStoredFields()
    • storedFieldsContext

      public abstract StoredFieldsContext storedFieldsContext()
    • storedFieldsContext

      public abstract SearchContext storedFieldsContext​(StoredFieldsContext storedFieldsContext)
    • explain

      public abstract boolean explain()
    • explain

      public abstract void explain​(boolean explain)
    • groupStats

      @Nullable public abstract java.util.List<java.lang.String> groupStats()
    • groupStats

      public abstract void groupStats​(java.util.List<java.lang.String> groupStats)
    • version

      public abstract boolean version()
    • version

      public abstract void version​(boolean version)
    • seqNoAndPrimaryTerm

      public abstract boolean seqNoAndPrimaryTerm()
      indicates whether the sequence number and primary term of the last modification to each hit should be returned
    • seqNoAndPrimaryTerm

      public abstract void seqNoAndPrimaryTerm​(boolean seqNoAndPrimaryTerm)
      controls whether the sequence number and primary term of the last modification to each hit should be returned
    • docIdsToLoad

      public abstract int[] docIdsToLoad()
    • docIdsToLoadSize

      public abstract int docIdsToLoadSize()
    • docIdsToLoad

      public abstract SearchContext docIdsToLoad​(int[] docIdsToLoad, int docsIdsToLoadSize)
    • dfsResult

      public abstract DfsSearchResult dfsResult()
    • queryResult

      public abstract QuerySearchResult queryResult()
    • fetchPhase

      public abstract FetchPhase fetchPhase()
    • fetchResult

      public abstract FetchSearchResult fetchResult()
    • getProfilers

      public abstract Profilers getProfilers()
      Return a handle over the profilers for the current search request, or null if profiling is not enabled.
    • addReleasable

      public void addReleasable​(Releasable releasable)
      Adds a releasable that will be freed when this context is closed.
    • hasOnlySuggest

      public final boolean hasOnlySuggest()
      Returns:
      true if the request contains only suggest
    • getRelativeTimeInMillis

      public abstract long getRelativeTimeInMillis()
      Returns time in milliseconds that can be used for relative time calculations. WARN: This is not the epoch time.
    • queryCollectors

      public abstract java.util.Map<java.lang.Class<?>,​org.apache.lucene.search.Collector> queryCollectors()
      Return a view of the additional query collectors that should be run for this context.
    • getSearchExecutionContext

      public abstract SearchExecutionContext getSearchExecutionContext()
    • toString

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

      public abstract ReaderContext readerContext()