All Implemented Interfaces:
Accountable

public class ContextQuery extends CompletionQuery implements Accountable
A CompletionQuery that matches documents specified by a wrapped CompletionQuery supporting boosting and/or filtering by specified contexts.

Use this query against ContextSuggestField

Example of using a CompletionQuery with boosted contexts:

  CompletionQuery completionQuery = ...;
  ContextQuery query = new ContextQuery(completionQuery);
  query.addContext("context1", 2);
  query.addContext("context2", 1);
 

NOTE:

  • Field Details

    • BASE_RAM_BYTES

      private static final long BASE_RAM_BYTES
    • scratch

      private IntsRefBuilder scratch
    • contexts

    • matchAllContexts

      private boolean matchAllContexts
    • innerQuery

      protected CompletionQuery innerQuery
      Inner completion query
    • ramBytesUsed

      private long ramBytesUsed
  • Constructor Details

  • Method Details

    • updateRamBytesUsed

      private void updateRamBytesUsed()
    • addContext

      public void addContext(CharSequence context)
      Adds an exact context with default boost of 1
    • addContext

      public void addContext(CharSequence context, float boost)
      Adds an exact context with boost
    • addContext

      public void addContext(CharSequence context, float boost, boolean exact)
      Adds a context with boost, set exact to false if the context is a prefix of any indexed contexts
    • addAllContexts

      public void addAllContexts()
      Add all contexts with a boost of 1f
    • toString

      public String toString(String field)
      Description copied from class: Query
      Prints a query to a string, with field assumed to be the default field and omitted.
      Overrides:
      toString in class CompletionQuery
    • createWeight

      public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException
      Description copied from class: Query
      Expert: Constructs an appropriate Weight implementation for this query.

      Only implemented by primitive queries, which re-write to themselves.

      Overrides:
      createWeight in class Query
      scoreMode - How the produced scorers will be consumed.
      boost - The boost that is propagated by the parent queries.
      Throws:
      IOException
    • toContextAutomaton

      private static Automaton toContextAutomaton(Map<IntsRef,ContextQuery.ContextMetaData> contexts, boolean matchAllContexts)
    • equals

      public boolean equals(Object o)
      Description copied from class: Query
      Override and implement query instance equivalence properly in a subclass. This is required so that QueryCache works properly.

      Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical that other instance. Utility methods are provided for certain repetitive code.

      Specified by:
      equals in class Query
      See Also:
    • hashCode

      public int hashCode()
      Description copied from class: Query
      Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
      Specified by:
      hashCode in class Query
      See Also:
    • visit

      public void visit(QueryVisitor visitor)
      Description copied from class: Query
      Recurse through the query tree, visiting any child queries
      Specified by:
      visit in class Query
      Parameters:
      visitor - a QueryVisitor to be called by each query in the tree
    • ramBytesUsed

      public long ramBytesUsed()
      Description copied from interface: Accountable
      Return the memory usage of this object in bytes. Negative values are illegal.
      Specified by:
      ramBytesUsed in interface Accountable