Class CompletionWeight
- java.lang.Object
-
- org.apache.lucene.search.Weight
-
- org.apache.lucene.search.suggest.document.CompletionWeight
-
- All Implemented Interfaces:
SegmentCacheable
public class CompletionWeight extends Weight
Expert: the Weight for CompletionQuery, used to score and explain these queries. Subclasses can overridesetNextMatch(IntsRef),boost()andcontext()to calculate the boost and extract the context of a matched path prefix.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.search.Weight
Weight.DefaultBulkScorer
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.search.Weight
parentQuery
-
-
Constructor Summary
Constructors Constructor Description CompletionWeight(CompletionQuery query, Automaton automaton)Creates a weight forquerywith anautomaton, using thereaderfor index stats
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected floatboost()Returns the boost of the partial path set bysetNextMatch(IntsRef)BulkScorerbulkScorer(LeafReaderContext context)Optional method, to return aBulkScorerto score the query and send hits to aCollector.protected CharSequencecontext()Returns the context of the partial path set bysetNextMatch(IntsRef)Explanationexplain(LeafReaderContext context, int doc)An explanation of the score computation for the named document.voidextractTerms(Set<Term> terms)Expert: adds all terms occurring in this query to the terms set.AutomatongetAutomaton()Returns the automaton specified by theCompletionQuerybooleanisCacheable(LeafReaderContext ctx)This object can be cachedScorerscorer(LeafReaderContext context)Returns aScorerwhich can iterate in order over all matching documents and assign them a score.protected voidsetNextMatch(IntsRef pathPrefix)Set for every partial path in the index that matched the query automaton.-
Methods inherited from class org.apache.lucene.search.Weight
getQuery, matches, scorerSupplier
-
-
-
-
Constructor Detail
-
CompletionWeight
public CompletionWeight(CompletionQuery query, Automaton automaton) throws IOException
Creates a weight forquerywith anautomaton, using thereaderfor index stats- Throws:
IOException
-
-
Method Detail
-
getAutomaton
public Automaton getAutomaton()
Returns the automaton specified by theCompletionQuery- Returns:
- query automaton
-
bulkScorer
public BulkScorer bulkScorer(LeafReaderContext context) throws IOException
Description copied from class:WeightOptional method, to return aBulkScorerto score the query and send hits to aCollector. Only queries that have a different top-level approach need to override this; the default implementation pulls a normalScorerand iterates and collects the resulting hits which are not marked as deleted.- Overrides:
bulkScorerin classWeight- Parameters:
context- theLeafReaderContextfor which to return theScorer.- Returns:
- a
BulkScorerwhich 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 overrideboost()andcontext()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 bysetNextMatch(IntsRef)- Returns:
- suggestion query-time boost
-
context
protected CharSequence context()
Returns the context of the partial path set bysetNextMatch(IntsRef)- Returns:
- suggestion context
-
scorer
public Scorer scorer(LeafReaderContext context) throws IOException
Description copied from class:WeightReturns aScorerwhich 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
Scorerdoes not haveLeafReader.getLiveDocs()applied, they need to be checked on top.- Specified by:
scorerin classWeight- Parameters:
context- theLeafReaderContextfor which to return theScorer.- Returns:
- a
Scorerwhich 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:
trueif the object can be cached against a given leaf- See Also:
SegmentCacheable.isCacheable(LeafReaderContext)
-
extractTerms
public void extractTerms(Set<Term> terms)
Description copied from class:WeightExpert: adds all terms occurring in this query to the terms set. If theWeightwas created withneedsScores == truethen this method will only extract terms which are used for scoring, otherwise it will extract all terms which are used for matching. UseQuery.visit(QueryVisitor)withQueryVisitor.termCollector(Set)- Specified by:
extractTermsin classWeight
-
explain
public Explanation explain(LeafReaderContext context, int doc) throws IOException
Description copied from class:WeightAn explanation of the score computation for the named document.- Specified by:
explainin classWeight- Parameters:
context- the readers context to create theExplanationfor.doc- the document's id relative to the given context's reader- Returns:
- an Explanation for the score
- Throws:
IOException- if anIOExceptionoccurs
-
-