Defer terminated scorer removal during buffered refill

This commit is contained in:
pascal
2026-05-31 11:53:11 +02:00
parent 46b3fb9ed3
commit 34fec8b23e

View File

@@ -66,17 +66,16 @@ fn refill<TScorer: Scorer, TScoreCombiner: ScoreCombiner>(
loop {
let doc = scorer.doc();
if doc >= horizon {
return false;
break;
}
// add this document
let delta = doc - min_doc;
bitsets[(delta / 64) as usize].insert_mut(delta % 64u32);
score_combiner[delta as usize].update(scorer);
if scorer.advance() == TERMINATED {
// remove the docset, it has been entirely consumed.
return true;
}
scorer.advance();
}
// remove the docset if it has been entirely consumed.
scorer.doc() == TERMINATED
});
}