ConjunctionScorer.
/// This Scorer implements {@link Scorer#SkipTo(int)} and uses SkipTo() on the given Scorers.
///
/// After each to call to Next() or SkipTo()
/// currentSumScore is the total score of the current matching doc,
/// nrMatchers is the number of matching scorers,
/// and all scorers are after the matching doc, or are exhausted.
///
DisjunctionScorer.minimumNrMatchers is bigger than
/// the number of subScorers,
/// no matches will be produced.
/// ConjunctionScorer.
///
public DisjunctionSumScorer(System.Collections.IList subScorers, int minimumNrMatchers):base(null)
{
nrScorers = subScorers.Count;
if (minimumNrMatchers <= 0)
{
throw new System.ArgumentException("Minimum nr of matchers must be positive");
}
if (nrScorers <= 1)
{
throw new System.ArgumentException("There must be at least 2 subScorers");
}
this.minimumNrMatchers = minimumNrMatchers;
this.subScorers = subScorers;
}
/// DisjunctionScorer, using one as the minimum number
/// of matching subscorers.
/// scorerQueue.
/// PriorityQueue that orders by {@link Scorer#Doc()}. 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.
/// scorerQueue has at least minimumNrMatchers
/// available. At least the scorer with the minimum document number will be advanced.
///