Class CompletionWeight
- 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()
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 Modifier and Type Field Description private Automaton
automaton
private CompletionQuery
completionQuery
-
Fields inherited from class org.apache.lucene.search.Weight
parentQuery
-
-
Constructor Summary
Constructors Constructor Description CompletionWeight(CompletionQuery query, Automaton automaton)
Creates a weight forquery
with anautomaton
, using thereader
for index stats
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected float
boost()
Returns the boost of the partial path set bysetNextMatch(IntsRef)
BulkScorer
bulkScorer(LeafReaderContext context)
Optional method, to return aBulkScorer
to score the query and send hits to aCollector
.protected java.lang.CharSequence
context()
Returns the context of the partial path set bysetNextMatch(IntsRef)
Explanation
explain(LeafReaderContext context, int doc)
An explanation of the score computation for the named document.Automaton
getAutomaton()
Returns the automaton specified by theCompletionQuery
boolean
isCacheable(LeafReaderContext ctx)
This object can be cachedScorer
scorer(LeafReaderContext context)
Returns aScorer
which can iterate in order over all matching documents and assign them a score.protected void
setNextMatch(IntsRef pathPrefix)
Set for every partial path in the index that matched the query automaton.-
Methods inherited from class org.apache.lucene.search.Weight
count, getQuery, matches, scorerSupplier
-
-
-
-
Field Detail
-
completionQuery
private final CompletionQuery completionQuery
-
automaton
private final Automaton automaton
-
-
Constructor Detail
-
CompletionWeight
public CompletionWeight(CompletionQuery query, Automaton automaton) throws java.io.IOException
Creates a weight forquery
with anautomaton
, using thereader
for index stats- Throws:
java.io.IOException
-
-
Method Detail
-
getAutomaton
public Automaton getAutomaton()
Returns the automaton specified by theCompletionQuery
- Returns:
- query automaton
-
bulkScorer
public BulkScorer bulkScorer(LeafReaderContext context) throws java.io.IOException
Description copied from class:Weight
Optional method, to return aBulkScorer
to 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 normalScorer
and iterates and collects the resulting hits which are not marked as deleted.- Overrides:
bulkScorer
in classWeight
- Parameters:
context
- theLeafReaderContext
for which to return theScorer
.- Returns:
- a
BulkScorer
which scores documents and passes them to a collector. - Throws:
java.io.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()
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 java.lang.CharSequence context()
Returns the context of the partial path set bysetNextMatch(IntsRef)
- Returns:
- suggestion context
-
scorer
public Scorer scorer(LeafReaderContext context) throws java.io.IOException
Description copied from class:Weight
Returns aScorer
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 haveLeafReader.getLiveDocs()
applied, they need to be checked on top.- Specified by:
scorer
in classWeight
- Parameters:
context
- theLeafReaderContext
for which to return theScorer
.- Returns:
- a
Scorer
which scores documents in/out-of order. - Throws:
java.io.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:
SegmentCacheable.isCacheable(LeafReaderContext)
-
explain
public Explanation explain(LeafReaderContext context, int doc) throws java.io.IOException
Description copied from class:Weight
An explanation of the score computation for the named document.- Specified by:
explain
in classWeight
- Parameters:
context
- the readers context to create theExplanation
for.doc
- the document's id relative to the given context's reader- Returns:
- an Explanation for the score
- Throws:
java.io.IOException
- if anIOException
occurs
-
-