diff -r a644c5b44d09 lucene/src/java/org/apache/lucene/search/BooleanQuery.java --- a/lucene/src/java/org/apache/lucene/search/BooleanQuery.java Tue Sep 07 16:04:54 2010 +0000 +++ b/lucene/src/java/org/apache/lucene/search/BooleanQuery.java Wed Sep 08 06:29:09 2010 -0400 @@ -240,6 +240,11 @@ Weight w = wIter.next(); BooleanClause c = cIter.next(); if (w.scorer(reader, true, true) == null) { + if (c.isRequired()) { + fail = true; + Explanation r = new Explanation(0.0f, "no match on required clause (" + c.getQuery().toString() + ")"); + sumExpl.addDetail(r); + } continue; } Explanation e = w.explain(reader, doc);