public override BulkScorer FilteredBulkScorer(AtomicReaderContext context, Weight weight, bool scoreDocsInOrder, DocIdSet docIdSet) // ignored (we always top-score in order) { IBits filterAcceptDocs = docIdSet.Bits; if (filterAcceptDocs == null) { // Filter does not provide random-access Bits; we // must fallback to leapfrog: return(LEAP_FROG_QUERY_FIRST_STRATEGY.FilteredBulkScorer(context, weight, scoreDocsInOrder, docIdSet)); } Scorer scorer = weight.GetScorer(context, null); return(scorer == null ? null : new QueryFirstBulkScorer(scorer, filterAcceptDocs)); }
public override Scorer FilteredScorer(AtomicReaderContext context, Weight weight, DocIdSet docIdSet) { IBits filterAcceptDocs = docIdSet.Bits; if (filterAcceptDocs == null) { // Filter does not provide random-access Bits; we // must fallback to leapfrog: return(LEAP_FROG_QUERY_FIRST_STRATEGY.FilteredScorer(context, weight, docIdSet)); } Scorer scorer = weight.GetScorer(context, null); return(scorer == null ? null : new QueryFirstScorer(weight, filterAcceptDocs, scorer)); }