public override BulkScorer BulkScorer(AtomicReaderContext context, bool scoreDocsInOrder, Bits acceptDocs)
{
if (scoreDocsInOrder)
{
return base.BulkScorer(context, scoreDocsInOrder, acceptDocs);
}
Terms terms = context.AtomicReader.Terms(outerInstance._field);
if (terms == null)
{
return null;
}
// what is the runtime...seems ok?
long cost = context.AtomicReader.MaxDoc * terms.Size();
segmentTermsEnum = terms.Iterator(segmentTermsEnum);
// Optimized impls that take advantage of docs
// being allowed to be out of order:
if (outerInstance._multipleValuesPerDocument)
{
return new MVInnerScorer(outerInstance, this, acceptDocs, segmentTermsEnum, context.AtomicReader.MaxDoc, cost);
}
return new SVInnerScorer(outerInstance, this, acceptDocs, segmentTermsEnum, cost);
}
}