java.lang.Object
org.apache.lucene.search.Weight
org.apache.lucene.search.suggest.document.CompletionWeight
All Implemented Interfaces:
SegmentCacheable
Direct Known Subclasses:
ContextQuery.ContextCompletionWeight, FuzzyCompletionQuery.FuzzyCompletionWeight

public class CompletionWeight extends Weight
Expert: the Weight for CompletionQuery, used to score and explain these queries.

Subclasses can override setNextMatch(IntsRef), boost() and context() to calculate the boost and extract the context of a matched path prefix.

  • Field Details

  • Constructor Details

  • Method Details

    • getAutomaton

      public Automaton getAutomaton()
      Returns the automaton specified by the CompletionQuery
      Returns:
      query automaton
    • bulkScorer

      public BulkScorer bulkScorer(LeafReaderContext context) throws IOException
      Description copied from class: Weight
      Optional method, to return a BulkScorer to score the query and send hits to a Collector. Only queries that have a different top-level approach need to override this; the default implementation pulls a normal Scorer and iterates and collects the resulting hits which are not marked as deleted.
      Overrides:
      bulkScorer in class Weight
      Parameters:
      context - the LeafReaderContext for which to return the Scorer.
      Returns:
      a BulkScorer which scores documents and passes them to a collector.
      Throws:
      IOException - if there is a low-level I/O error
    • setNextMatch

      protected void setNextMatch(IntsRef pathPrefix)
      Set for every partial path in the index that matched the query automaton.

      Subclasses should override boost() and context() to return an appropriate value with respect to the current pathPrefix.

      Parameters:
      pathPrefix - the prefix of a matched path
    • boost

      protected float boost()
      Returns the boost of the partial path set by setNextMatch(IntsRef)
      Returns:
      suggestion query-time boost
    • context

      protected CharSequence context()
      Returns the context of the partial path set by setNextMatch(IntsRef)
      Returns:
      suggestion context
    • scorer

      public Scorer scorer(LeafReaderContext context) throws IOException
      Description copied from class: Weight
      Returns a Scorer which can iterate in order over all matching documents and assign them a score.

      NOTE: null can be returned if no documents will be scored by this query.

      NOTE: The returned Scorer does not have LeafReader.getLiveDocs() applied, they need to be checked on top.

      Specified by:
      scorer in class Weight
      Parameters:
      context - the LeafReaderContext for which to return the Scorer.
      Returns:
      a Scorer which scores documents in/out-of order.
      Throws:
      IOException - if there is a low-level I/O error
    • isCacheable

      public boolean isCacheable(LeafReaderContext ctx)
      This object can be cached
      Returns:
      true if the object can be cached against a given leaf
      See Also:
    • explain

      public Explanation explain(LeafReaderContext context, int doc) throws IOException
      Description copied from class: Weight
      An explanation of the score computation for the named document.
      Specified by:
      explain in class Weight
      Parameters:
      context - the readers context to create the Explanation for.
      doc - the document's id relative to the given context's reader
      Returns:
      an Explanation for the score
      Throws:
      IOException - if an IOException occurs