java.lang.Object
org.elasticsearch.transport.TransportMessage
org.elasticsearch.transport.TransportResponse
org.elasticsearch.search.SearchPhaseResult
org.elasticsearch.search.query.QuerySearchResult
- All Implemented Interfaces:
Writeable,RefCounted
-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.transport.TransportResponse
TransportResponse.EmptyNested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V> -
Field Summary
Fields inherited from class org.elasticsearch.search.SearchPhaseResult
contextIdFields inherited from interface org.elasticsearch.core.RefCounted
ALWAYS_REFERENCED -
Constructor Summary
ConstructorsConstructorDescriptionQuerySearchResult(StreamInput in, boolean delayedAggregations) Read the object, but using a delayed aggregations field when delayedAggregations=true.QuerySearchResult(ShardSearchContextId contextId, SearchShardTarget shardTarget, ShardSearchRequest shardSearchRequest) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddReleasable(Releasable releasable) voidaggregations(InternalAggregations aggregations) voidReturns and nulls out the profiled results for this search, or potentially null if result was empty.Returns and nulls out the top docs for this search results.booleandecRef()Note that the lifetime of an outboundTransportMessagelasts at least until it has been fully sent over the network, and it may be closed on a network thread in a context in which there's a risk of stack overflows if on close it calls back into the network layer in a manner that might end up nesting too deeply.intfrom()from(int from) getAggs()Returns the aggregation as aDelayableWriteableobject.floatorg.apache.lucene.search.TotalHitsbooleanhasAggs()Returnstrueif this query result has unconsumed aggregationsbooleanReturnstrueiff the top docs have already been consumed.booleanbooleanbooleanSpecifies whether the specific search phase results are associated with an opened SearchContext on the shards that executed the request.booleanReturnstrueif this result has any suggest score docsvoidincRef()booleanisNull()Returns true if the result doesn't contain any useful information.intnodeQueueSize(int nodeQueueSize) static QuerySearchResultReturns an instance that contains no response.voidprofileResults(SearchProfileQueryPhaseResult shardResults) Sets the finalized profiling results for this queryReturns the query result iff it's included in this response otherwisenullvoidvoidRelease the memory hold by theDelayableWriteableaggregationsbooleanvoidsearchTimedOut(boolean searchTimedOut) longserviceTimeEWMA(long serviceTimeEWMA) voidsetRankShardResult(RankShardResult rankShardResult) voidsetSearchProfileDfsPhaseResult(SearchProfileDfsPhaseResult searchProfileDfsPhaseResult) intsize()Returns the maximum size of this results top docs.size(int size) suggest()voidvoidterminatedEarly(boolean terminatedEarly) topDocs()voidtopDocs(TopDocsAndMaxScore topDocs, DocValueFormat[] sortValueFormats) booleanvoidwriteTo(StreamOutput out) Write this into the StreamOutput.voidwriteToNoId(StreamOutput out) Methods inherited from class org.elasticsearch.search.SearchPhaseResult
fetchResult, getContextId, getRescoreDocIds, getSearchShardTarget, getShardIndex, getShardSearchRequest, rankFeatureResult, setRescoreDocIds, setSearchShardTarget, setShardIndex, setShardSearchRequestMethods inherited from class org.elasticsearch.transport.TransportMessage
remoteAddress, remoteAddressMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.elasticsearch.core.RefCounted
mustIncRef
-
Constructor Details
-
QuerySearchResult
public QuerySearchResult() -
QuerySearchResult
- Throws:
IOException
-
QuerySearchResult
Read the object, but using a delayed aggregations field when delayedAggregations=true. Using this, the caller must ensure that either `consumeAggs` or `releaseAggs` is called if `hasAggs() == true`.- Parameters:
delayedAggregations- whether to use delayed aggregations or not- Throws:
IOException
-
QuerySearchResult
public QuerySearchResult(ShardSearchContextId contextId, SearchShardTarget shardTarget, ShardSearchRequest shardSearchRequest)
-
-
Method Details
-
nullInstance
Returns an instance that contains no response. -
isNull
public boolean isNull()Returns true if the result doesn't contain any useful information. It is used by the search action to avoid creating an empty response on shard request that rewrites to match_no_docs. TODO: Currently we need the concrete aggregators to build empty responses. This means that we cannot build an empty response in the coordinating node so we rely on this hack to ensure that at least one shard returns a valid empty response. We should move the ability to create empty responses to aggregation builders in order to allow building empty responses directly from the coordinating node. -
queryResult
Description copied from class:SearchPhaseResultReturns the query result iff it's included in this response otherwisenull- Overrides:
queryResultin classSearchPhaseResult
-
searchTimedOut
public void searchTimedOut(boolean searchTimedOut) -
searchTimedOut
public boolean searchTimedOut() -
terminatedEarly
public void terminatedEarly(boolean terminatedEarly) -
terminatedEarly
-
topDocs
-
hasConsumedTopDocs
public boolean hasConsumedTopDocs()Returnstrueiff the top docs have already been consumed. -
consumeTopDocs
Returns and nulls out the top docs for this search results. This allows to free up memory once the top docs are consumed.- Throws:
IllegalStateException- if the top docs have already been consumed.
-
topDocs
-
setRankShardResult
-
getRankShardResult
-
sortValueFormats
-
hasAggs
public boolean hasAggs()Returnstrueif this query result has unconsumed aggregations -
getAggs
Returns the aggregation as aDelayableWriteableobject. Callers are free to expand them whenever they wat but they should callreleaseAggs()in order to free memory,- Throws:
IllegalStateException- ifreleaseAggs()has already being called.
-
releaseAggs
public void releaseAggs()Release the memory hold by theDelayableWriteableaggregations- Throws:
IllegalStateException- ifreleaseAggs()has already being called.
-
addReleasable
-
aggregations
-
aggregations
-
setSearchProfileDfsPhaseResult
-
consumeProfileResult
Returns and nulls out the profiled results for this search, or potentially null if result was empty. This allows to free up memory once the profiled result is consumed.- Throws:
IllegalStateException- if the profiled result has already been consumed.
-
hasProfileResults
public boolean hasProfileResults() -
consumeAll
public void consumeAll() -
profileResults
Sets the finalized profiling results for this query- Parameters:
shardResults- The finalized profile
-
suggest
-
suggest
-
from
public int from() -
from
-
size
public int size()Returns the maximum size of this results top docs. -
size
-
serviceTimeEWMA
public long serviceTimeEWMA() -
serviceTimeEWMA
-
nodeQueueSize
public int nodeQueueSize() -
nodeQueueSize
-
hasSuggestHits
public boolean hasSuggestHits()Returnstrueif this result has any suggest score docs -
hasSearchContext
public boolean hasSearchContext()Description copied from class:SearchPhaseResultSpecifies whether the specific search phase results are associated with an opened SearchContext on the shards that executed the request.- Overrides:
hasSearchContextin classSearchPhaseResult
-
readFromWithId
- Throws:
IOException
-
writeTo
Description copied from interface:WriteableWrite this into the StreamOutput.- Specified by:
writeToin interfaceWriteable- Overrides:
writeToin classSearchPhaseResult- Throws:
IOException
-
writeToNoId
- Throws:
IOException
-
getTotalHits
-
getMaxScore
public float getMaxScore() -
incRef
public void incRef()- Specified by:
incRefin interfaceRefCounted- Overrides:
incRefin classTransportMessage
-
tryIncRef
public boolean tryIncRef()- Specified by:
tryIncRefin interfaceRefCounted- Overrides:
tryIncRefin classTransportMessage
-
decRef
public boolean decRef()Description copied from class:TransportMessageNote that the lifetime of an outboundTransportMessagelasts at least until it has been fully sent over the network, and it may be closed on a network thread in a context in which there's a risk of stack overflows if on close it calls back into the network layer in a manner that might end up nesting too deeply. When in doubt, dispatch any further work onto a separate thread.- Specified by:
decRefin interfaceRefCounted- Overrides:
decRefin classTransportMessage
-
hasReferences
public boolean hasReferences()- Specified by:
hasReferencesin interfaceRefCounted- Overrides:
hasReferencesin classTransportMessage
-