Index: lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java =================================================================== --- lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java (revision 1330029) +++ lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java (working copy) @@ -333,7 +333,7 @@ } @Override - protected void visitSubScorers(Query parent, Occur relationship, ScorerVisitor visitor) { + public void visitSubScorers(Query parent, Occur relationship, ScorerVisitor visitor) { super.visitSubScorers(parent, relationship, visitor); final Query q = weight.getQuery(); SubScorer sub = scorers; Index: lucene/core/src/java/org/apache/lucene/search/BooleanScorer2.java =================================================================== --- lucene/core/src/java/org/apache/lucene/search/BooleanScorer2.java (revision 1330029) +++ lucene/core/src/java/org/apache/lucene/search/BooleanScorer2.java (working copy) @@ -321,7 +321,7 @@ } @Override - protected void visitSubScorers(Query parent, Occur relationship, ScorerVisitor visitor) { + public void visitSubScorers(Query parent, Occur relationship, ScorerVisitor visitor) { super.visitSubScorers(parent, relationship, visitor); final Query q = weight.getQuery(); for (Scorer s : optionalScorers) { Index: lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxScorer.java =================================================================== --- lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxScorer.java (revision 1330029) +++ lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxScorer.java (working copy) @@ -186,4 +186,13 @@ } } + @Override + public void visitSubScorers(Query parent, BooleanClause.Occur relationship, ScorerVisitor visitor) { + super.visitSubScorers(parent, relationship, visitor); + final Query q = weight.getQuery(); + for (int i = 0; i < numScorers; i++) { + subScorers[i].visitSubScorers(q, BooleanClause.Occur.SHOULD, visitor); + } + } + } Index: lucene/core/src/java/org/apache/lucene/search/Scorer.java =================================================================== --- lucene/core/src/java/org/apache/lucene/search/Scorer.java (revision 1330029) +++ lucene/core/src/java/org/apache/lucene/search/Scorer.java (working copy) @@ -198,7 +198,7 @@ * * @lucene.experimental */ - protected void visitSubScorers(Query parent, Occur relationship, + public void visitSubScorers(Query parent, Occur relationship, ScorerVisitor visitor) { if (weight == null) throw new UnsupportedOperationException();