diff --git a/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java b/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java index 30b1d4b7e5a..40e44b7c428 100644 --- a/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java +++ b/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java @@ -170,8 +170,9 @@ private void scoreInnerWindowWithFilter( DisiWrapper top = essentialQueue.top(); assert top.doc < max; - if (top.doc < filter.doc) { + while (top.doc < filter.doc) { top.doc = top.approximation.advance(filter.doc); + top = essentialQueue.updateTop(); } // Only score an inner window, after that we'll check if the min competitive score has increased