Index: src/test/org/apache/lucene/search/spans/TestSpans.java =================================================================== --- src/test/org/apache/lucene/search/spans/TestSpans.java (revision 509370) +++ src/test/org/apache/lucene/search/spans/TestSpans.java (working copy) @@ -210,6 +210,10 @@ public void testSpanOrEmpty() throws Exception { Spans spans = orSpans(new String[0]); assertFalse("empty next", spans.next()); + + SpanOrQuery a = new SpanOrQuery( new SpanQuery[0] ); + SpanOrQuery b = new SpanOrQuery( new SpanQuery[0] ); + assertTrue("empty should equal", a.equals(b)); } public void testSpanOrSingle() throws Exception { Index: src/java/org/apache/lucene/search/spans/SpanOrQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanOrQuery.java (revision 509370) +++ src/java/org/apache/lucene/search/spans/SpanOrQuery.java (working copy) @@ -121,7 +121,7 @@ final SpanOrQuery that = (SpanOrQuery) o; if (!clauses.equals(that.clauses)) return false; - if (!field.equals(that.field)) return false; + if (!clauses.isEmpty() && !field.equals(that.field)) return false; return getBoost() == that.getBoost(); }