org.apache.lucene.search
Class DisjunctionSumScorer
public class DisjunctionSumScorer
A Scorer for OR like queries, counterpart of Lucene's
ConjunctionScorer
.
This Scorer implements
Scorer.skipTo(int)
and uses skipTo() on the given Scorers.
protected int | nrMatchers - The number of subscorers that provide the current match.
|
protected List | subScorers - The subscorers.
|
DisjunctionSumScorer(List subScorers) - Construct a
DisjunctionScorer , using one as the minimum number
of matching subscorers.
|
DisjunctionSumScorer(List subScorers, int minimumNrMatchers) - Construct a
DisjunctionScorer .
|
protected boolean | advanceAfterCurrent() - Advance all subscorers after the current document determined by the
top of the
scorerQueue .
|
int | doc()
|
Explanation | explain(int doc) - Gives and explanation for the score of a given document.
|
boolean | next()
|
int | nrMatchers() - Returns the number of subscorers matching the current document.
|
float | score() - Returns the score of the current document matching the query.
|
boolean | skipTo(int target) - Skips to the first match beyond the current whose document number is
greater than or equal to a given target.
|
nrMatchers
protected int nrMatchers
The number of subscorers that provide the current match.
subScorers
protected final List subScorers
The subscorers.
DisjunctionSumScorer
public DisjunctionSumScorer(List subScorers)
Construct a DisjunctionScorer
, using one as the minimum number
of matching subscorers.
DisjunctionSumScorer
public DisjunctionSumScorer(List subScorers,
int minimumNrMatchers)
Construct a DisjunctionScorer
.
subScorers
- A collection of at least two subscorers.minimumNrMatchers
- The positive minimum number of subscorers that should
match to match this query.
When minimumNrMatchers
is bigger than
the number of subScorers
,
no matches will be produced.
When minimumNrMatchers equals the number of subScorers,
it more efficient to use ConjunctionScorer
.
advanceAfterCurrent
protected boolean advanceAfterCurrent()
throws IOException
Advance all subscorers after the current document determined by the
top of the scorerQueue
.
Repeat until at least the minimum number of subscorers match on the same
document and all subscorers are after that document or are exhausted.
On entry the scorerQueue
has at least minimumNrMatchers
available. At least the scorer with the minimum document number will be advanced.
- true iff there is a match.
In case there is a match, currentDoc, currentSumScore,
and nrMatchers describe the match.
- Investigate whether it is possible to use skipTo() when
the minimum number of matchers is bigger than one, ie. try and use the
character of ConjunctionScorer for the minimum number of matchers.
explain
public Explanation explain(int doc)
throws IOException
Gives and explanation for the score of a given document.
- explain in interface Scorer
- Show the resulting score. See BooleanScorer.explain() on how to do this.
next
public boolean next()
throws IOException
- next in interface Scorer
nrMatchers
public int nrMatchers()
Returns the number of subscorers matching the current document.
Initially invalid, until
next()
is called the first time.
score
public float score()
throws IOException
Returns the score of the current document matching the query.
Initially invalid, until
next()
is called the first time.
- score in interface Scorer
skipTo
public boolean skipTo(int target)
throws IOException
Skips to the first match beyond the current whose document number is
greater than or equal to a given target.
When this method is used the
explain(int)
method should not be used.
The implementation uses the skipTo() method on the subscorers.
- skipTo in interface Scorer
target
- The target document number.
- true iff there is such a match.
Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.