blob: 8a147749c85e397a6c4cf348c9cb1c0cc827ffbb [file] [log] [blame]
Index: src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
===================================================================
--- src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (revision 544714)
+++ src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (working copy)
@@ -29,6 +29,7 @@
import org.apache.lucene.store.RAMDirectory;
import java.text.DecimalFormat;
+import java.io.IOException;
/**
* Test of the DisjunctionMaxQuery.
@@ -125,7 +126,37 @@
s.setSimilarity(sim);
}
+ public void testSkipToFirsttimeMiss() throws IOException {
+ final DisjunctionMaxQuery dq = new DisjunctionMaxQuery(0.0f);
+ dq.add(tq("id","d1"));
+ dq.add(tq("dek","DOES_NOT_EXIST"));
+ QueryUtils.check(dq,s);
+
+ final Weight dw = dq.weight(s);
+ final Scorer ds = dw.scorer(r);
+ final boolean skipOk = ds.skipTo(3);
+ if (skipOk) {
+ fail("firsttime skipTo found a match? ... " +
+ r.document(ds.doc()).get("id"));
+ }
+ }
+
+ public void testSkipToFirsttimeHit() throws IOException {
+ final DisjunctionMaxQuery dq = new DisjunctionMaxQuery(0.0f);
+ dq.add(tq("dek","albino"));
+ dq.add(tq("dek","DOES_NOT_EXIST"));
+
+ QueryUtils.check(dq,s);
+
+ final Weight dw = dq.weight(s);
+ final Scorer ds = dw.scorer(r);
+ assertTrue("firsttime skipTo found no match", ds.skipTo(3));
+ assertEquals("found wrong docid", "d4", r.document(ds.doc()).get("id"));
+ }
+
+
+
public void testSimpleEqualScores1() throws Exception {
DisjunctionMaxQuery q = new DisjunctionMaxQuery(0.0f);
Index: src/java/org/apache/lucene/search/DisjunctionMaxScorer.java
===================================================================
--- src/java/org/apache/lucene/search/DisjunctionMaxScorer.java (revision 544714)
+++ src/java/org/apache/lucene/search/DisjunctionMaxScorer.java (working copy)
@@ -117,7 +117,6 @@
if (!more) return false;
heapify();
firstTime = false;
- return true; // more would have been false if no subScorers had any docs
}
while (subScorers.size()>0 && ((Scorer)subScorers.get(0)).doc()<target) {