Package org.elasticsearch.index.query
Class QueryRewriteContext
- java.lang.Object
-
- org.elasticsearch.index.query.QueryRewriteContext
-
- Direct Known Subclasses:
QueryShardContext
public class QueryRewriteContext extends java.lang.Object
Context object used to rewriteQueryBuilder
instances into simplified version.
-
-
Field Summary
Fields Modifier and Type Field Description protected Client
client
protected java.util.function.LongSupplier
nowInMillis
-
Constructor Summary
Constructors Constructor Description QueryRewriteContext(NamedXContentRegistry xContentRegistry, NamedWriteableRegistry writeableRegistry, Client client, java.util.function.LongSupplier nowInMillis)
-
Method Summary
Modifier and Type Method Description boolean
convertNowRangeToMatchAll()
In pre-processing contexts that happen at index time 'now' date ranges should be replaced by aMatchAllQueryBuilder
.QueryShardContext
convertToShardContext()
Returns an instance ofQueryShardContext
if available of null otherwisevoid
executeAsyncActions(ActionListener listener)
Executes all registered async actions and notifies the listener once it's done.NamedWriteableRegistry
getWriteableRegistry()
NamedXContentRegistry
getXContentRegistry()
The registry used to build newXContentParser
s.boolean
hasAsyncActions()
Returnstrue
if there are any registered async actions.long
nowInMillis()
Returns the time in milliseconds that is shared across all resources involved.void
registerAsyncAction(java.util.function.BiConsumer<Client,ActionListener<?>> asyncAction)
Registers an async action that must be executed before the next rewrite round in order to make progress.
-
-
-
Field Detail
-
client
protected final Client client
-
nowInMillis
protected final java.util.function.LongSupplier nowInMillis
-
-
Constructor Detail
-
QueryRewriteContext
public QueryRewriteContext(NamedXContentRegistry xContentRegistry, NamedWriteableRegistry writeableRegistry, Client client, java.util.function.LongSupplier nowInMillis)
-
-
Method Detail
-
getXContentRegistry
public NamedXContentRegistry getXContentRegistry()
The registry used to build newXContentParser
s. Contains registered named parsers needed to parse the query.
-
nowInMillis
public long nowInMillis()
Returns the time in milliseconds that is shared across all resources involved. Even across shards and nodes.
-
getWriteableRegistry
public NamedWriteableRegistry getWriteableRegistry()
-
convertToShardContext
public QueryShardContext convertToShardContext()
Returns an instance ofQueryShardContext
if available of null otherwise
-
registerAsyncAction
public void registerAsyncAction(java.util.function.BiConsumer<Client,ActionListener<?>> asyncAction)
Registers an async action that must be executed before the next rewrite round in order to make progress. This should be used if a rewriteabel needs to fetch some external resources in order to be executed ie. a document from an index.
-
hasAsyncActions
public boolean hasAsyncActions()
Returnstrue
if there are any registered async actions.
-
executeAsyncActions
public void executeAsyncActions(ActionListener listener)
Executes all registered async actions and notifies the listener once it's done. The value that is passed to the listener is alwaysnull
. The list of registered actions is cleared once this method returns.
-
convertNowRangeToMatchAll
public boolean convertNowRangeToMatchAll()
In pre-processing contexts that happen at index time 'now' date ranges should be replaced by aMatchAllQueryBuilder
. Otherwise documents that should match at query time would never match and the document that have fallen outside the date range would continue to match.- Returns:
- indicates whether range queries with date ranges using 'now' are rewritten to a
MatchAllQueryBuilder
.
-
-