Class QueryRewriteContext

  • Direct Known Subclasses:
    QueryShardContext

    public class QueryRewriteContext
    extends java.lang.Object
    Context object used to rewrite QueryBuilder instances into simplified version.
    • Field Detail

      • client

        protected final Client client
      • nowInMillis

        protected final java.util.function.LongSupplier nowInMillis
    • Method Detail

      • getXContentRegistry

        public NamedXContentRegistry getXContentRegistry()
        The registry used to build new XContentParsers. 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.
      • 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()
        Returns true 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 always null. 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 a MatchAllQueryBuilder. 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.