You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/12/04 19:51:02 UTC
svn commit: r1210176 [2/3] - in /lucene/dev/trunk:
lucene/contrib/memory/src/java/org/apache/lucene/index/memory/
lucene/contrib/memory/src/test/org/apache/lucene/index/memory/
lucene/contrib/misc/src/java/org/apache/lucene/index/
lucene/contrib/misc/s...
Added: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyConjunctionTermsScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyConjunctionTermsScorer.java?rev=1210176&view=auto
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyConjunctionTermsScorer.java (added)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyConjunctionTermsScorer.java Sun Dec 4 18:50:58 2011
@@ -0,0 +1,37 @@
+package org.apache.lucene.search;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+
+/** Scorer for conjunctions, sets of terms, all of which are required. */
+final class MatchOnlyConjunctionTermScorer extends ConjunctionTermScorer {
+ MatchOnlyConjunctionTermScorer(Weight weight, float coord,
+ DocsAndFreqs[] docsAndFreqs) throws IOException {
+ super(weight, coord, docsAndFreqs);
+ }
+
+ @Override
+ public float score() throws IOException {
+ float sum = 0.0f;
+ for (DocsAndFreqs docs : docsAndFreqs) {
+ sum += docs.docScorer.score(lastDoc, 1);
+ }
+ return sum * coord;
+ }
+}
Added: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyTermScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyTermScorer.java?rev=1210176&view=auto
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyTermScorer.java (added)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MatchOnlyTermScorer.java Sun Dec 4 18:50:58 2011
@@ -0,0 +1,94 @@
+package org.apache.lucene.search;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+
+import org.apache.lucene.index.DocsEnum;
+import org.apache.lucene.search.similarities.Similarity;
+
+/** Expert: A <code>Scorer</code> for documents matching a
+ * <code>Term</code>. It treats all documents as having
+ * one occurrenc (tf=1) for the term.
+ */
+
+final class MatchOnlyTermScorer extends Scorer {
+ private final DocsEnum docsEnum;
+ private final Similarity.ExactDocScorer docScorer;
+
+ /**
+ * Construct a <code>TermScorer</code>.
+ *
+ * @param weight
+ * The weight of the <code>Term</code> in the query.
+ * @param td
+ * An iterator over the documents matching the <code>Term</code>.
+ * @param docScorer
+ * The </code>Similarity.ExactDocScorer</code> implementation
+ * to be used for score computations.
+ */
+ MatchOnlyTermScorer(Weight weight, DocsEnum td, Similarity.ExactDocScorer docScorer) throws IOException {
+ super(weight);
+ this.docScorer = docScorer;
+ this.docsEnum = td;
+ }
+
+ @Override
+ public int docID() {
+ return docsEnum.docID();
+ }
+
+ @Override
+ public float freq() {
+ return 1.0f;
+ }
+
+ /**
+ * Advances to the next document matching the query. <br>
+ *
+ * @return the document matching the query or NO_MORE_DOCS if there are no more documents.
+ */
+ @Override
+ public int nextDoc() throws IOException {
+ return docsEnum.nextDoc();
+ }
+
+ @Override
+ public float score() {
+ assert docID() != NO_MORE_DOCS;
+ return docScorer.score(docsEnum.docID(), 1);
+ }
+
+ /**
+ * Advances to the first match beyond the current whose document number is
+ * greater than or equal to a given target. <br>
+ * The implementation uses {@link DocsEnum#advance(int)}.
+ *
+ * @param target
+ * The target document number.
+ * @return the matching document or NO_MORE_DOCS if none exist.
+ */
+ @Override
+ public int advance(int target) throws IOException {
+ return docsEnum.advance(target);
+ }
+
+ /** Returns a string representation of this <code>TermScorer</code>. */
+ @Override
+ public String toString() { return "scorer(" + weight + ")"; }
+}
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java Sun Dec 4 18:50:58 2011
@@ -229,7 +229,7 @@ public class MultiPhraseQuery extends Qu
if (postingsEnum == null) {
// term does exist, but has no positions
- assert termsEnum.docs(liveDocs, null) != null: "termstate found but no term exists in reader";
+ assert termsEnum.docs(liveDocs, null, false) != null: "termstate found but no term exists in reader";
throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + term.text() + ")");
}
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java Sun Dec 4 18:50:58 2011
@@ -105,7 +105,7 @@ public class MultiTermQueryWrapperFilter
do {
// System.out.println(" iter termCount=" + termCount + " term=" +
// enumerator.term().toBytesString());
- docsEnum = termsEnum.docs(acceptDocs, docsEnum);
+ docsEnum = termsEnum.docs(acceptDocs, docsEnum, false);
int docid;
while ((docid = docsEnum.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
bitSet.set(docid);
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQuery.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/PhraseQuery.java Sun Dec 4 18:50:58 2011
@@ -244,7 +244,7 @@ public class PhraseQuery extends Query {
// PhraseQuery on a field that did not index
// positions.
if (postingsEnum == null) {
- assert reader.termDocsEnum(liveDocs, t.field(), t.bytes(), state) != null: "termstate found but no term exists in reader";
+ assert reader.termDocsEnum(liveDocs, t.field(), t.bytes(), state, false) != null: "termstate found but no term exists in reader";
// term does exist, but has no positions
throw new IllegalStateException("field \"" + t.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + t.text() + ")");
}
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermQuery.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermQuery.java Sun Dec 4 18:50:58 2011
@@ -21,18 +21,18 @@ import java.io.IOException;
import java.util.Set;
import org.apache.lucene.index.DocsEnum;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.TermState;
-import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexReader.ReaderContext;
+import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.index.TermState;
+import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.search.similarities.Similarity.ExactDocScorer;
+import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.TermContext;
import org.apache.lucene.util.ReaderUtil;
+import org.apache.lucene.util.TermContext;
import org.apache.lucene.util.ToStringUtils;
/** A Query that matches documents containing a term.
@@ -83,10 +83,15 @@ public class TermQuery extends Query {
if (termsEnum == null) {
return null;
}
- // TODO should we reuse the DocsEnum here?
- final DocsEnum docs = termsEnum.docs(acceptDocs, null);
- assert docs != null;
- return new TermScorer(this, docs, createDocScorer(context));
+ DocsEnum docs = termsEnum.docs(acceptDocs, null, true);
+ if (docs != null) {
+ return new TermScorer(this, docs, createDocScorer(context));
+ } else {
+ // Index does not store freq info
+ docs = termsEnum.docs(acceptDocs, null, false);
+ assert docs != null;
+ return new MatchOnlyTermScorer(this, docs, createDocScorer(context));
+ }
}
/**
@@ -120,12 +125,11 @@ public class TermQuery extends Query {
@Override
public Explanation explain(AtomicReaderContext context, int doc) throws IOException {
- IndexReader reader = context.reader;
- DocsEnum docs = reader.termDocsEnum(context.reader.getLiveDocs(), term.field(), term.bytes());
- if (docs != null) {
- int newDoc = docs.advance(doc);
+ Scorer scorer = scorer(context, true, false, context.reader.getLiveDocs());
+ if (scorer != null) {
+ int newDoc = scorer.advance(doc);
if (newDoc == doc) {
- int freq = docs.freq();
+ float freq = scorer.freq();
ExactDocScorer docScorer = similarity.exactDocScorer(stats, term.field(), context);
ComplexExplanation result = new ComplexExplanation();
result.setDescription("weight("+getQuery()+" in "+doc+") [" + similarity.getClass().getSimpleName() + "], result of:");
@@ -136,8 +140,7 @@ public class TermQuery extends Query {
return result;
}
}
-
- return new ComplexExplanation(false, 0.0f, "no matching term");
+ return new ComplexExplanation(false, 0.0f, "no matching term");
}
}
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/codecs/ramonly/RAMOnlyPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/codecs/ramonly/RAMOnlyPostingsFormat.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/codecs/ramonly/RAMOnlyPostingsFormat.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/codecs/ramonly/RAMOnlyPostingsFormat.java Sun Dec 4 18:50:58 2011
@@ -383,7 +383,7 @@ public class RAMOnlyPostingsFormat exten
}
@Override
- public DocsEnum docs(Bits liveDocs, DocsEnum reuse) {
+ public DocsEnum docs(Bits liveDocs, DocsEnum reuse, boolean needsFreqs) {
return new RAMDocsEnum(ramField.termToDocs.get(current), liveDocs);
}
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/_TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/_TestUtil.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/_TestUtil.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/util/_TestUtil.java Sun Dec 4 18:50:58 2011
@@ -37,12 +37,18 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CheckIndex;
import org.apache.lucene.index.ConcurrentMergeScheduler;
+import org.apache.lucene.index.DocsAndPositionsEnum;
+import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.FieldInfos;
+import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.LogMergePolicy;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.index.MergeScheduler;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.Terms;
+import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.PostingsFormat;
@@ -520,4 +526,51 @@ public class _TestUtil {
return doc2;
}
+
+ // Returns a DocsEnum, but randomly sometimes uses a
+ // DocsAndFreqsEnum, DocsAndPositionsEnum. Returns null
+ // if field/term doesn't exist:
+ public static DocsEnum docs(Random random, IndexReader r, String field, BytesRef term, Bits liveDocs, DocsEnum reuse, boolean needsFreqs) throws IOException {
+ final Terms terms = MultiFields.getTerms(r, field);
+ if (terms == null) {
+ return null;
+ }
+ final TermsEnum termsEnum = terms.iterator(null);
+ if (!termsEnum.seekExact(term, random.nextBoolean())) {
+ return null;
+ }
+ if (random.nextBoolean()) {
+ if (random.nextBoolean()) {
+ // TODO: cast re-use to D&PE if we can...?
+ final DocsAndPositionsEnum docsAndPositions = termsEnum.docsAndPositions(liveDocs, null);
+ if (docsAndPositions != null) {
+ return docsAndPositions;
+ }
+ }
+ final DocsEnum docsAndFreqs = termsEnum.docs(liveDocs, reuse, true);
+ if (docsAndFreqs != null) {
+ return docsAndFreqs;
+ }
+ }
+ return termsEnum.docs(liveDocs, reuse, needsFreqs);
+ }
+
+ // Returns a DocsEnum from a positioned TermsEnum, but
+ // randomly sometimes uses a DocsAndFreqsEnum, DocsAndPositionsEnum.
+ public static DocsEnum docs(Random random, TermsEnum termsEnum, Bits liveDocs, DocsEnum reuse, boolean needsFreqs) throws IOException {
+ if (random.nextBoolean()) {
+ if (random.nextBoolean()) {
+ // TODO: cast re-use to D&PE if we can...?
+ final DocsAndPositionsEnum docsAndPositions = termsEnum.docsAndPositions(liveDocs, null);
+ if (docsAndPositions != null) {
+ return docsAndPositions;
+ }
+ }
+ final DocsEnum docsAndFreqs = termsEnum.docs(liveDocs, null, true);
+ if (docsAndFreqs != null) {
+ return docsAndFreqs;
+ }
+ }
+ return termsEnum.docs(liveDocs, null, needsFreqs);
+ }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java Sun Dec 4 18:50:58 2011
@@ -530,7 +530,7 @@ public class TestAddIndexes extends Luce
private void verifyTermDocs(Directory dir, Term term, int numDocs)
throws IOException {
IndexReader reader = IndexReader.open(dir, true);
- DocsEnum docsEnum = MultiFields.getTermDocsEnum(reader, null, term.field, term.bytes);
+ DocsEnum docsEnum = _TestUtil.docs(random, reader, term.field, term.bytes, null, null, false);
int count = 0;
while (docsEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS)
count++;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Sun Dec 4 18:50:58 2011
@@ -669,7 +669,7 @@ public class TestBackwardsCompatibility
// should be found exactly
assertEquals(TermsEnum.SeekStatus.FOUND,
terms.seekCeil(aaaTerm));
- assertEquals(35, countDocs(terms.docs(null, null)));
+ assertEquals(35, countDocs(_TestUtil.docs(random, terms, null, null, false)));
assertNull(terms.next());
// should hit end of field
@@ -681,12 +681,12 @@ public class TestBackwardsCompatibility
assertEquals(TermsEnum.SeekStatus.NOT_FOUND,
terms.seekCeil(new BytesRef("a")));
assertTrue(terms.term().bytesEquals(aaaTerm));
- assertEquals(35, countDocs(terms.docs(null, null)));
+ assertEquals(35, countDocs(_TestUtil.docs(random, terms, null, null, false)));
assertNull(terms.next());
assertEquals(TermsEnum.SeekStatus.FOUND,
terms.seekCeil(aaaTerm));
- assertEquals(35, countDocs(terms.docs(null, null)));
+ assertEquals(35, countDocs(_TestUtil.docs(random, terms,null, null, false)));
assertNull(terms.next());
r.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java Sun Dec 4 18:50:58 2011
@@ -279,7 +279,7 @@ public class TestCodecs extends LuceneTe
// make sure it properly fully resets (rewinds) its
// internal state:
for(int iter=0;iter<2;iter++) {
- docsEnum = termsEnum.docs(null, docsEnum);
+ docsEnum = _TestUtil.docs(random, termsEnum, null, docsEnum, false);
assertEquals(terms[i].docs[0], docsEnum.nextDoc());
assertEquals(DocsEnum.NO_MORE_DOCS, docsEnum.nextDoc());
}
@@ -479,7 +479,7 @@ public class TestCodecs extends LuceneTe
assertEquals(status, TermsEnum.SeekStatus.FOUND);
assertEquals(term.docs.length, termsEnum.docFreq());
if (field.omitTF) {
- this.verifyDocs(term.docs, term.positions, termsEnum.docs(null, null), false);
+ this.verifyDocs(term.docs, term.positions, _TestUtil.docs(random, termsEnum, null, null, false), false);
} else {
this.verifyDocs(term.docs, term.positions, termsEnum.docsAndPositions(null, null), true);
}
@@ -499,7 +499,7 @@ public class TestCodecs extends LuceneTe
assertTrue(termsEnum.term().bytesEquals(new BytesRef(term.text2)));
assertEquals(term.docs.length, termsEnum.docFreq());
if (field.omitTF) {
- this.verifyDocs(term.docs, term.positions, termsEnum.docs(null, null), false);
+ this.verifyDocs(term.docs, term.positions, _TestUtil.docs(random, termsEnum, null, null, false), false);
} else {
this.verifyDocs(term.docs, term.positions, termsEnum.docsAndPositions(null, null), true);
}
@@ -549,15 +549,22 @@ public class TestCodecs extends LuceneTe
do {
term = field.terms[upto];
if (TestCodecs.random.nextInt(3) == 1) {
- final DocsEnum docs = termsEnum.docs(null, null);
- final DocsAndPositionsEnum postings = termsEnum.docsAndPositions(null, null);
-
- final DocsEnum docsEnum;
- if (postings != null) {
- docsEnum = postings;
+ final DocsEnum docs;
+ final DocsEnum docsAndFreqs;
+ final DocsAndPositionsEnum postings;
+ if (!field.omitTF) {
+ postings = termsEnum.docsAndPositions(null, null);
+ if (postings != null) {
+ docs = docsAndFreqs = postings;
+ } else {
+ docs = docsAndFreqs = _TestUtil.docs(random, termsEnum, null, null, true);
+ }
} else {
- docsEnum = docs;
+ postings = null;
+ docsAndFreqs = null;
+ docs = _TestUtil.docs(random, termsEnum, null, null, false);
}
+ assertNotNull(docs);
int upto2 = -1;
while(upto2 < term.docs.length-1) {
// Maybe skip:
@@ -567,10 +574,10 @@ public class TestCodecs extends LuceneTe
final int inc = 1+TestCodecs.random.nextInt(left-1);
upto2 += inc;
if (TestCodecs.random.nextInt(2) == 1) {
- doc = docsEnum.advance(term.docs[upto2]);
+ doc = docs.advance(term.docs[upto2]);
assertEquals(term.docs[upto2], doc);
} else {
- doc = docsEnum.advance(1+term.docs[upto2]);
+ doc = docs.advance(1+term.docs[upto2]);
if (doc == DocIdSetIterator.NO_MORE_DOCS) {
// skipped past last doc
assert upto2 == term.docs.length-1;
@@ -584,20 +591,20 @@ public class TestCodecs extends LuceneTe
}
}
} else {
- doc = docsEnum.nextDoc();
+ doc = docs.nextDoc();
assertTrue(doc != -1);
upto2++;
}
assertEquals(term.docs[upto2], doc);
if (!field.omitTF) {
- assertEquals(term.positions[upto2].length, docsEnum.freq());
+ assertEquals(term.positions[upto2].length, postings.freq());
if (TestCodecs.random.nextInt(2) == 1) {
this.verifyPositions(term.positions[upto2], postings);
}
}
}
- assertEquals(DocIdSetIterator.NO_MORE_DOCS, docsEnum.nextDoc());
+ assertEquals(DocIdSetIterator.NO_MORE_DOCS, docs.nextDoc());
}
upto++;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java Sun Dec 4 18:50:58 2011
@@ -17,7 +17,8 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
@@ -25,9 +26,8 @@ import org.apache.lucene.document.TextFi
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
-
-import java.io.IOException;
-import java.util.Random;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestDirectoryReader extends LuceneTestCase {
protected Directory dir;
@@ -171,15 +171,18 @@ public class TestDirectoryReader extends
// test mixing up TermDocs and TermEnums from different readers.
TermsEnum te2 = MultiFields.getTerms(mr2, "body").iterator(null);
te2.seekCeil(new BytesRef("wow"));
- DocsEnum td = MultiFields.getTermDocsEnum(mr2,
- MultiFields.getLiveDocs(mr2),
- "body",
- te2.term());
+ DocsEnum td = _TestUtil.docs(random, mr2,
+ "body",
+ te2.term(),
+ MultiFields.getLiveDocs(mr2),
+ null,
+ false);
TermsEnum te3 = MultiFields.getTerms(mr3, "body").iterator(null);
te3.seekCeil(new BytesRef("wow"));
- td = te3.docs(MultiFields.getLiveDocs(mr3),
- td);
+ td = _TestUtil.docs(random, te3, MultiFields.getLiveDocs(mr3),
+ td,
+ false);
int ret = 0;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java Sun Dec 4 18:50:58 2011
@@ -68,11 +68,14 @@ public class TestDocCount extends Lucene
String field;
while ((field = e.next()) != null) {
Terms terms = fields.terms(field);
+ if (terms == null) {
+ continue;
+ }
int docCount = terms.getDocCount();
FixedBitSet visited = new FixedBitSet(ir.maxDoc());
TermsEnum te = terms.iterator(null);
while (te.next() != null) {
- DocsEnum de = te.docs(null, null);
+ DocsEnum de = _TestUtil.docs(random, te, null, null, false);
while (de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
visited.set(de.docID());
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java Sun Dec 4 18:50:58 2011
@@ -22,7 +22,6 @@ import java.util.Arrays;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
@@ -34,6 +33,7 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.ReaderUtil;
+import org.apache.lucene.util._TestUtil;
public class TestDocsAndPositions extends LuceneTestCase {
private String fieldName;
@@ -99,16 +99,6 @@ public class TestDocsAndPositions extend
return reader.termPositionsEnum(null, fieldName, bytes);
}
- public DocsEnum getDocsEnum(IndexReader reader, BytesRef bytes,
- boolean freqs, Bits liveDocs) throws IOException {
- int randInt = random.nextInt(10);
- if (randInt == 0) { // once in a while throw in a positions enum
- return getDocsAndPositions(reader, bytes, liveDocs);
- } else {
- return reader.termDocsEnum(liveDocs, fieldName, bytes);
- }
- }
-
/**
* this test indexes random numbers within a range into a field and checks
* their occurrences by searching for a number from that range selected at
@@ -232,31 +222,31 @@ public class TestDocsAndPositions extend
AtomicReaderContext[] leaves = ReaderUtil.leaves(topReaderContext);
for (AtomicReaderContext context : leaves) {
int maxDoc = context.reader.maxDoc();
- DocsEnum docsAndPosEnum = getDocsEnum(context.reader, bytes, true, null);
+ DocsEnum docsEnum = _TestUtil.docs(random, context.reader, fieldName, bytes, null, null, true);
if (findNext(freqInDoc, context.docBase, context.docBase + maxDoc) == Integer.MAX_VALUE) {
- assertNull(docsAndPosEnum);
+ assertNull(docsEnum);
continue;
}
- assertNotNull(docsAndPosEnum);
- docsAndPosEnum.nextDoc();
+ assertNotNull(docsEnum);
+ docsEnum.nextDoc();
for (int j = 0; j < maxDoc; j++) {
if (freqInDoc[context.docBase + j] != 0) {
- assertEquals(j, docsAndPosEnum.docID());
- assertEquals(docsAndPosEnum.freq(), freqInDoc[context.docBase +j]);
+ assertEquals(j, docsEnum.docID());
+ assertEquals(docsEnum.freq(), freqInDoc[context.docBase +j]);
if (i % 2 == 0 && random.nextInt(10) == 0) {
int next = findNext(freqInDoc, context.docBase+j+1, context.docBase + maxDoc) - context.docBase;
- int advancedTo = docsAndPosEnum.advance(next);
+ int advancedTo = docsEnum.advance(next);
if (next >= maxDoc) {
assertEquals(DocsEnum.NO_MORE_DOCS, advancedTo);
} else {
assertTrue("advanced to: " +advancedTo + " but should be <= " + next, next >= advancedTo);
}
} else {
- docsAndPosEnum.nextDoc();
+ docsEnum.nextDoc();
}
}
}
- assertEquals("docBase: " + context.docBase + " maxDoc: " + maxDoc + " " + docsAndPosEnum.getClass(), DocsEnum.NO_MORE_DOCS, docsAndPosEnum.docID());
+ assertEquals("docBase: " + context.docBase + " maxDoc: " + maxDoc + " " + docsEnum.getClass(), DocsEnum.NO_MORE_DOCS, docsEnum.docID());
}
}
@@ -343,7 +333,7 @@ public class TestDocsAndPositions extend
writer.addDocument(doc);
IndexReader reader = writer.getReader();
IndexReader r = getOnlySegmentReader(reader);
- DocsEnum disi = r.termDocsEnum(null, "foo", new BytesRef("bar"));
+ DocsEnum disi = _TestUtil.docs(random, r, "foo", new BytesRef("bar"), null, null, false);
int docid = disi.docID();
assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -351,7 +341,7 @@ public class TestDocsAndPositions extend
// now reuse and check again
TermsEnum te = r.terms("foo").iterator(null);
assertTrue(te.seekExact(new BytesRef("bar"), true));
- disi = te.docs(null, disi);
+ disi = _TestUtil.docs(random, te, null, disi, false);
docid = disi.docID();
assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDuelingCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDuelingCodecs.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDuelingCodecs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDuelingCodecs.java Sun Dec 4 18:50:58 2011
@@ -270,18 +270,42 @@ public class TestDuelingCodecs extends L
assertPositionsSkipping(leftTermsEnum.docFreq(),
leftPositions = leftTermsEnum.docsAndPositions(randomBits, leftPositions),
rightPositions = rightTermsEnum.docsAndPositions(randomBits, rightPositions));
+
+ // with freqs:
+ assertDocsEnum(leftDocs = leftTermsEnum.docs(null, leftDocs, true),
+ rightDocs = rightTermsEnum.docs(null, rightDocs, true),
+ true);
+ assertDocsEnum(leftDocs = leftTermsEnum.docs(randomBits, leftDocs, true),
+ rightDocs = rightTermsEnum.docs(randomBits, rightDocs, true),
+ true);
+
+ // w/o freqs:
+ assertDocsEnum(leftDocs = leftTermsEnum.docs(null, leftDocs, false),
+ rightDocs = rightTermsEnum.docs(null, rightDocs, false),
+ false);
+ assertDocsEnum(leftDocs = leftTermsEnum.docs(randomBits, leftDocs, false),
+ rightDocs = rightTermsEnum.docs(randomBits, rightDocs, false),
+ false);
- assertDocsEnum(leftDocs = leftTermsEnum.docs(null, leftDocs),
- rightDocs = rightTermsEnum.docs(null, rightDocs));
- assertDocsEnum(leftDocs = leftTermsEnum.docs(randomBits, leftDocs),
- rightDocs = rightTermsEnum.docs(randomBits, rightDocs));
-
+ // with freqs:
assertDocsSkipping(leftTermsEnum.docFreq(),
- leftDocs = leftTermsEnum.docs(null, leftDocs),
- rightDocs = rightTermsEnum.docs(null, rightDocs));
+ leftDocs = leftTermsEnum.docs(null, leftDocs, true),
+ rightDocs = rightTermsEnum.docs(null, rightDocs, true),
+ true);
assertDocsSkipping(leftTermsEnum.docFreq(),
- leftDocs = leftTermsEnum.docs(randomBits, leftDocs),
- rightDocs = rightTermsEnum.docs(randomBits, rightDocs));
+ leftDocs = leftTermsEnum.docs(randomBits, leftDocs, true),
+ rightDocs = rightTermsEnum.docs(randomBits, rightDocs, true),
+ true);
+
+ // w/o freqs:
+ assertDocsSkipping(leftTermsEnum.docFreq(),
+ leftDocs = leftTermsEnum.docs(null, leftDocs, false),
+ rightDocs = rightTermsEnum.docs(null, rightDocs, false),
+ false);
+ assertDocsSkipping(leftTermsEnum.docFreq(),
+ leftDocs = leftTermsEnum.docs(randomBits, leftDocs, false),
+ rightDocs = rightTermsEnum.docs(randomBits, rightDocs, false),
+ false);
}
}
assertNull(info, rightTermsEnum.next());
@@ -327,13 +351,19 @@ public class TestDuelingCodecs extends L
/**
* checks docs + freqs, sequentially
*/
- public void assertDocsEnum(DocsEnum leftDocs, DocsEnum rightDocs) throws Exception {
+ public void assertDocsEnum(DocsEnum leftDocs, DocsEnum rightDocs, boolean hasFreqs) throws Exception {
+ if (leftDocs == null) {
+ assertNull(rightDocs);
+ return;
+ }
assertTrue(info, leftDocs.docID() == -1 || leftDocs.docID() == DocIdSetIterator.NO_MORE_DOCS);
assertTrue(info, rightDocs.docID() == -1 || rightDocs.docID() == DocIdSetIterator.NO_MORE_DOCS);
int docid;
while ((docid = leftDocs.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
assertEquals(info, docid, rightDocs.nextDoc());
- assertEquals(info, leftDocs.freq(), rightDocs.freq());
+ if (hasFreqs) {
+ assertEquals(info, leftDocs.freq(), rightDocs.freq());
+ }
}
assertEquals(info, DocIdSetIterator.NO_MORE_DOCS, rightDocs.nextDoc());
}
@@ -341,7 +371,11 @@ public class TestDuelingCodecs extends L
/**
* checks advancing docs
*/
- public void assertDocsSkipping(int docFreq, DocsEnum leftDocs, DocsEnum rightDocs) throws Exception {
+ public void assertDocsSkipping(int docFreq, DocsEnum leftDocs, DocsEnum rightDocs, boolean hasFreqs) throws Exception {
+ if (leftDocs == null) {
+ assertNull(rightDocs);
+ return;
+ }
int docid = -1;
int averageGap = leftReader.maxDoc() / (1+docFreq);
int skipInterval = 16;
@@ -361,7 +395,9 @@ public class TestDuelingCodecs extends L
if (docid == DocIdSetIterator.NO_MORE_DOCS) {
return;
}
- assertEquals(info, leftDocs.freq(), rightDocs.freq());
+ if (hasFreqs) {
+ assertEquals(info, leftDocs.freq(), rightDocs.freq());
+ }
}
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Sun Dec 4 18:50:58 2011
@@ -320,18 +320,20 @@ public class TestIndexReader extends Luc
Term term,
int expected)
throws IOException {
- DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- term.field(),
- new BytesRef(term.text()));
- int count = 0;
- if (tdocs != null) {
- while(tdocs.nextDoc()!= DocIdSetIterator.NO_MORE_DOCS) {
- count++;
- }
- }
- assertEquals(msg + ", count mismatch", expected, count);
+ DocsEnum tdocs = _TestUtil.docs(random, reader,
+ term.field(),
+ new BytesRef(term.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
+ int count = 0;
+ if (tdocs != null) {
+ while(tdocs.nextDoc()!= DocIdSetIterator.NO_MORE_DOCS) {
+ count++;
+ }
}
+ assertEquals(msg + ", count mismatch", expected, count);
+ }
public void testBinaryFields() throws IOException {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Sun Dec 4 18:50:58 2011
@@ -546,10 +546,12 @@ public class TestIndexWriter extends Luc
assertEquals(1, reader.numDocs());
Term t = new Term("field", "a");
assertEquals(1, reader.docFreq(t));
- DocsEnum td = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- "field",
- new BytesRef("a"));
+ DocsEnum td = _TestUtil.docs(random, reader,
+ "field",
+ new BytesRef("a"),
+ MultiFields.getLiveDocs(reader),
+ null,
+ true);
td.nextDoc();
assertEquals(128*1024, td.freq());
reader.close();
@@ -1338,12 +1340,12 @@ public class TestIndexWriter extends Luc
// test that the terms were indexed.
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc1field1")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc2field1")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc3field1")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc1field2")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc2field2")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
- assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc3field2")).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "binary", new BytesRef("doc1field1"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "binary", new BytesRef("doc2field1"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "binary", new BytesRef("doc3field1"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "string", new BytesRef("doc1field2"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "string", new BytesRef("doc2field2"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+ assertTrue(_TestUtil.docs(random, ir, "string", new BytesRef("doc3field2"), null, null, false).nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
ir.close();
dir.close();
@@ -1415,7 +1417,7 @@ public class TestIndexWriter extends Luc
TermsEnum t = r.fields().terms("field").iterator(null);
int count = 0;
while(t.next() != null) {
- final DocsEnum docs = t.docs(null, null);
+ final DocsEnum docs = _TestUtil.docs(random, t, null, null, false);
assertEquals(0, docs.nextDoc());
assertEquals(DocIdSetIterator.NO_MORE_DOCS, docs.nextDoc());
count++;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Sun Dec 4 18:50:58 2011
@@ -500,10 +500,12 @@ public class TestIndexWriterExceptions e
// Make sure the doc that hit the exception was marked
// as deleted:
- DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- t.field(),
- new BytesRef(t.text()));
+ DocsEnum tdocs = _TestUtil.docs(random, reader,
+ t.field(),
+ new BytesRef(t.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
int count = 0;
while(tdocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Sun Dec 4 18:50:58 2011
@@ -49,9 +49,11 @@ public class TestIndexWriterReader exten
public static int count(Term t, IndexReader r) throws IOException {
int count = 0;
- DocsEnum td = MultiFields.getTermDocsEnum(r,
- MultiFields.getLiveDocs(r),
- t.field(), new BytesRef(t.text()));
+ DocsEnum td = _TestUtil.docs(random, r,
+ t.field(), new BytesRef(t.text()),
+ MultiFields.getLiveDocs(r),
+ null,
+ false);
if (td != null) {
while (td.nextDoc() != DocsEnum.NO_MORE_DOCS) {
@@ -990,7 +992,7 @@ public class TestIndexWriterReader exten
w.addDocument(doc);
IndexReader r = IndexReader.open(w, true).getSequentialSubReaders()[0];
try {
- r.termDocsEnum(null, "f", new BytesRef("val"));
+ _TestUtil.docs(random, r, "f", new BytesRef("val"), null, null, false);
fail("should have failed to seek since terms index was not loaded.");
} catch (IllegalStateException e) {
// expected - we didn't load the term index
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Sun Dec 4 18:50:58 2011
@@ -32,6 +32,7 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.ThreadInterruptedException;
+import org.apache.lucene.util._TestUtil;
/**
* MultiThreaded IndexWriter tests
@@ -209,10 +210,12 @@ public class TestIndexWriterWithThreads
// Quick test to make sure index is not corrupt:
IndexReader reader = IndexReader.open(dir, true);
- DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- "field",
- new BytesRef("aaa"));
+ DocsEnum tdocs = _TestUtil.docs(random, reader,
+ "field",
+ new BytesRef("aaa"),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
int count = 0;
while(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
count++;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java Sun Dec 4 18:50:58 2011
@@ -367,7 +367,17 @@ public class TestLongPostings extends Lu
System.out.println("\nTEST: iter=" + iter + " doS1=" + doS1 + " term=" + term);
}
- final DocsEnum postings = MultiFields.getTermDocsEnum(r, null, "field", new BytesRef(term));
+ final DocsEnum docs;
+ final DocsEnum postings;
+
+ if (options == IndexOptions.DOCS_ONLY) {
+ docs = _TestUtil.docs(random, r, "field", new BytesRef(term), null, null, false);
+ postings = null;
+ } else {
+ docs = postings = _TestUtil.docs(random, r, "field", new BytesRef(term), null, null, true);
+ assert postings != null;
+ }
+ assert docs != null;
int docID = -1;
while(docID < DocsEnum.NO_MORE_DOCS) {
@@ -388,7 +398,7 @@ public class TestLongPostings extends Lu
expected++;
}
}
- docID = postings.nextDoc();
+ docID = docs.nextDoc();
if (VERBOSE) {
System.out.println(" got docID=" + docID);
}
@@ -397,7 +407,7 @@ public class TestLongPostings extends Lu
break;
}
- if (random.nextInt(6) == 3) {
+ if (random.nextInt(6) == 3 && postings != null) {
final int freq = postings.freq();
assertTrue(freq >=1 && freq <= 4);
}
@@ -424,7 +434,7 @@ public class TestLongPostings extends Lu
}
}
- docID = postings.advance(targetDocID);
+ docID = docs.advance(targetDocID);
if (VERBOSE) {
System.out.println(" got docID=" + docID);
}
@@ -433,7 +443,7 @@ public class TestLongPostings extends Lu
break;
}
- if (random.nextInt(6) == 3) {
+ if (random.nextInt(6) == 3 && postings != null) {
final int freq = postings.freq();
assertTrue("got invalid freq=" + freq, freq >=1 && freq <= 4);
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiFields.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiFields.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiFields.java Sun Dec 4 18:50:58 2011
@@ -120,7 +120,7 @@ public class TestMultiFields extends Luc
System.out.println("TEST: seek term="+ UnicodeUtil.toHexString(term.utf8ToString()) + " " + term);
}
- DocsEnum docsEnum = MultiFields.getTermDocsEnum(reader, liveDocs, "field", term);
+ DocsEnum docsEnum = _TestUtil.docs(random, reader, "field", term, liveDocs, null, false);
assertNotNull(docsEnum);
for(int docID : docs.get(term)) {
@@ -138,11 +138,12 @@ public class TestMultiFields extends Luc
/*
private void verify(IndexReader r, String term, List<Integer> expected) throws Exception {
- DocsEnum docs = MultiFields.getTermDocsEnum(r,
- MultiFields.getLiveDocs(r),
- "field",
- new BytesRef(term));
-
+ DocsEnum docs = _TestUtil.docs(random, r,
+ "field",
+ new BytesRef(term),
+ MultiFields.getLiveDocs(r),
+ null,
+ false);
for(int docID : expected) {
assertEquals(docID, docs.nextDoc());
}
@@ -160,8 +161,8 @@ public class TestMultiFields extends Luc
w.addDocument(d);
IndexReader r = w.getReader();
w.close();
- DocsEnum d1 = MultiFields.getTermDocsEnum(r, null, "f", new BytesRef("j"));
- DocsEnum d2 = MultiFields.getTermDocsEnum(r, null, "f", new BytesRef("j"));
+ DocsEnum d1 = _TestUtil.docs(random, r, "f", new BytesRef("j"), null, null, false);
+ DocsEnum d2 = _TestUtil.docs(random, r, "f", new BytesRef("j"), null, null, false);
assertEquals(0, d1.nextDoc());
assertEquals(0, d2.nextDoc());
r.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java Sun Dec 4 18:50:58 2011
@@ -28,6 +28,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
/**
*
@@ -52,7 +53,7 @@ public class TestOmitPositions extends L
assertNull(MultiFields.getTermPositionsEnum(reader, null, "foo", new BytesRef("test")));
- DocsEnum de = MultiFields.getTermDocsEnum(reader, null, "foo", new BytesRef("test"));
+ DocsEnum de = _TestUtil.docs(random, reader, "foo", new BytesRef("test"), null, null, true);
while (de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
assertEquals(2, de.freq());
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java Sun Dec 4 18:50:58 2011
@@ -19,12 +19,13 @@ package org.apache.lucene.index;
import java.io.IOException;
-import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestParallelTermEnum extends LuceneTestCase {
private IndexReader ir1;
@@ -88,31 +89,31 @@ public class TestParallelTermEnum extend
TermsEnum te = terms.iterator(null);
assertEquals("brown", te.next().utf8ToString());
- DocsEnum td = te.docs(liveDocs, null);
+ DocsEnum td = _TestUtil.docs(random, te, liveDocs, null, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("fox", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("jumps", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("quick", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("the", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
@@ -125,31 +126,31 @@ public class TestParallelTermEnum extend
te = terms.iterator(null);
assertEquals("brown", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("fox", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("jumps", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("quick", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("the", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
@@ -162,37 +163,37 @@ public class TestParallelTermEnum extend
te = terms.iterator(null);
assertEquals("dog", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("fox", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("jumps", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("lazy", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("over", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
assertEquals("the", te.next().utf8ToString());
- td = te.docs(liveDocs, td);
+ td = _TestUtil.docs(random, te, liveDocs, td, false);
assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java Sun Dec 4 18:50:58 2011
@@ -20,8 +20,8 @@ package org.apache.lucene.index;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
import java.util.Map;
+import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.store.Directory;
@@ -31,6 +31,7 @@ import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestPerSegmentDeletes extends LuceneTestCase {
public void testDeletes1() throws Exception {
@@ -224,7 +225,7 @@ public class TestPerSegmentDeletes exten
Terms cterms = fields.terms(term.field);
TermsEnum ctermsEnum = cterms.iterator(null);
if (ctermsEnum.seekExact(new BytesRef(term.text()), false)) {
- DocsEnum docsEnum = ctermsEnum.docs(bits, null);
+ DocsEnum docsEnum = _TestUtil.docs(random, ctermsEnum, bits, null, false);
return toArray(docsEnum);
}
return null;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java Sun Dec 4 18:50:58 2011
@@ -17,18 +17,19 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import org.apache.lucene.util.InfoStream;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
+import java.io.IOException;
+import java.util.Collection;
+
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
-
-import java.io.IOException;
-import java.util.Collection;
+import org.apache.lucene.util.InfoStream;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestSegmentMerger extends LuceneTestCase {
//The variables for the new merged segment
@@ -98,10 +99,12 @@ public class TestSegmentMerger extends L
assertTrue(newDoc2 != null);
assertTrue(DocHelper.numFields(newDoc2) == DocHelper.numFields(doc2) - DocHelper.unstored.size());
- DocsEnum termDocs = MultiFields.getTermDocsEnum(mergedReader,
- MultiFields.getLiveDocs(mergedReader),
- DocHelper.TEXT_FIELD_2_KEY,
- new BytesRef("field"));
+ DocsEnum termDocs = _TestUtil.docs(random, mergedReader,
+ DocHelper.TEXT_FIELD_2_KEY,
+ new BytesRef("field"),
+ MultiFields.getLiveDocs(mergedReader),
+ null,
+ false);
assertTrue(termDocs != null);
assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java Sun Dec 4 18:50:58 2011
@@ -22,12 +22,12 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
-
import org.apache.lucene.document.Document;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
+import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestSegmentReader extends LuceneTestCase {
private Directory dir;
@@ -132,16 +132,20 @@ public class TestSegmentReader extends L
}
}
- DocsEnum termDocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- DocHelper.TEXT_FIELD_1_KEY,
- new BytesRef("field"));
+ DocsEnum termDocs = _TestUtil.docs(random, reader,
+ DocHelper.TEXT_FIELD_1_KEY,
+ new BytesRef("field"),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
- termDocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- DocHelper.NO_NORMS_KEY,
- new BytesRef(DocHelper.NO_NORMS_TEXT));
+ termDocs = _TestUtil.docs(random, reader,
+ DocHelper.NO_NORMS_KEY,
+ new BytesRef(DocHelper.NO_NORMS_TEXT),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java Sun Dec 4 18:50:58 2011
@@ -17,14 +17,15 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
+import java.io.IOException;
+
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
+import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
-
-import java.io.IOException;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestSegmentTermDocs extends LuceneTestCase {
private Document testDoc = new Document();
@@ -61,7 +62,7 @@ public class TestSegmentTermDocs extends
TermsEnum terms = reader.fields().terms(DocHelper.TEXT_FIELD_2_KEY).iterator(null);
terms.seekCeil(new BytesRef("field"));
- DocsEnum termDocs = terms.docs(reader.getLiveDocs(), null);
+ DocsEnum termDocs = _TestUtil.docs(random, terms, reader.getLiveDocs(), null, true);
if (termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
int docId = termDocs.docID();
assertTrue(docId == 0);
@@ -80,9 +81,12 @@ public class TestSegmentTermDocs extends
//After adding the document, we should be able to read it back in
SegmentReader reader = SegmentReader.get(true, info, indexDivisor, newIOContext(random));
assertTrue(reader != null);
- DocsEnum termDocs = reader.termDocsEnum(reader.getLiveDocs(),
- "textField2",
- new BytesRef("bad"));
+ DocsEnum termDocs = _TestUtil.docs(random, reader,
+ "textField2",
+ new BytesRef("bad"),
+ reader.getLiveDocs(),
+ null,
+ false);
assertNull(termDocs);
reader.close();
@@ -91,9 +95,12 @@ public class TestSegmentTermDocs extends
//After adding the document, we should be able to read it back in
SegmentReader reader = SegmentReader.get(true, info, indexDivisor, newIOContext(random));
assertTrue(reader != null);
- DocsEnum termDocs = reader.termDocsEnum(reader.getLiveDocs(),
- "junk",
- new BytesRef("bad"));
+ DocsEnum termDocs = _TestUtil.docs(random, reader,
+ "junk",
+ new BytesRef("bad"),
+ reader.getLiveDocs(),
+ null,
+ false);
assertNull(termDocs);
reader.close();
}
@@ -125,10 +132,12 @@ public class TestSegmentTermDocs extends
IndexReader reader = IndexReader.open(dir, null, true, indexDivisor);
- DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- ta.field(),
- new BytesRef(ta.text()));
+ DocsEnum tdocs = _TestUtil.docs(random, reader,
+ ta.field(),
+ new BytesRef(ta.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ true);
// without optimization (assumption skipInterval == 16)
@@ -148,10 +157,12 @@ public class TestSegmentTermDocs extends
assertFalse(tdocs.advance(10) != DocsEnum.NO_MORE_DOCS);
// without next
- tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- ta.field(),
- new BytesRef(ta.text()));
+ tdocs = _TestUtil.docs(random, reader,
+ ta.field(),
+ new BytesRef(ta.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
assertTrue(tdocs.advance(0) != DocsEnum.NO_MORE_DOCS);
assertEquals(0, tdocs.docID());
@@ -164,10 +175,12 @@ public class TestSegmentTermDocs extends
// exactly skipInterval documents and therefore with optimization
// with next
- tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- tb.field(),
- new BytesRef(tb.text()));
+ tdocs = _TestUtil.docs(random, reader,
+ tb.field(),
+ new BytesRef(tb.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ true);
assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(10, tdocs.docID());
@@ -186,10 +199,12 @@ public class TestSegmentTermDocs extends
assertFalse(tdocs.advance(26) != DocsEnum.NO_MORE_DOCS);
// without next
- tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- tb.field(),
- new BytesRef(tb.text()));
+ tdocs = _TestUtil.docs(random, reader,
+ tb.field(),
+ new BytesRef(tb.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ true);
assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
assertEquals(10, tdocs.docID());
@@ -204,10 +219,12 @@ public class TestSegmentTermDocs extends
// much more than skipInterval documents and therefore with optimization
// with next
- tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- tc.field(),
- new BytesRef(tc.text()));
+ tdocs = _TestUtil.docs(random, reader,
+ tc.field(),
+ new BytesRef(tc.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ true);
assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
assertEquals(26, tdocs.docID());
@@ -228,10 +245,12 @@ public class TestSegmentTermDocs extends
assertFalse(tdocs.advance(76) != DocsEnum.NO_MORE_DOCS);
//without next
- tdocs = MultiFields.getTermDocsEnum(reader,
- MultiFields.getLiveDocs(reader),
- tc.field(),
- new BytesRef(tc.text()));
+ tdocs = _TestUtil.docs(random, reader,
+ tc.field(),
+ new BytesRef(tc.text()),
+ MultiFields.getLiveDocs(reader),
+ null,
+ false);
assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
assertEquals(26, tdocs.docID());
assertTrue(tdocs.advance(40) != DocsEnum.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java Sun Dec 4 18:50:58 2011
@@ -75,11 +75,11 @@ public class TestStressAdvance extends L
System.out.println("\nTEST: iter=" + iter + " iter2=" + iter2);
}
assertEquals(TermsEnum.SeekStatus.FOUND, te.seekCeil(new BytesRef("a")));
- de = te.docs(null, de);
+ de = _TestUtil.docs(random, te, null, de, false);
testOne(de, aDocIDs);
assertEquals(TermsEnum.SeekStatus.FOUND, te.seekCeil(new BytesRef("b")));
- de = te.docs(null, de);
+ de = _TestUtil.docs(random, te, null, de, false);
testOne(de, bDocIDs);
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java Sun Dec 4 18:50:58 2011
@@ -334,7 +334,7 @@ public class TestStressIndexing2 extends
// deleted docs):
DocsEnum docs = null;
while(termsEnum.next() != null) {
- docs = termsEnum.docs(liveDocs1, docs);
+ docs = _TestUtil.docs(random, termsEnum, null, docs, false);
while(docs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
fail("r1 is not empty but r2 is");
}
@@ -354,9 +354,9 @@ public class TestStressIndexing2 extends
break;
}
- termDocs1 = termsEnum.docs(liveDocs1, termDocs1);
+ termDocs1 = _TestUtil.docs(random, termsEnum, liveDocs1, termDocs1, false);
if (termsEnum2.seekExact(term, false)) {
- termDocs2 = termsEnum2.docs(liveDocs2, termDocs2);
+ termDocs2 = _TestUtil.docs(random, termsEnum2, liveDocs2, termDocs2, false);
} else {
termDocs2 = null;
}
@@ -415,7 +415,7 @@ public class TestStressIndexing2 extends
System.out.println(" pos=" + dpEnum.nextPosition());
}
} else {
- dEnum = termsEnum3.docs(null, dEnum);
+ dEnum = _TestUtil.docs(random, termsEnum3, null, dEnum, true);
assertNotNull(dEnum);
assertTrue(dEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
final int freq = dEnum.freq();
@@ -449,7 +449,7 @@ public class TestStressIndexing2 extends
System.out.println(" pos=" + dpEnum.nextPosition());
}
} else {
- dEnum = termsEnum3.docs(null, dEnum);
+ dEnum = _TestUtil.docs(random, termsEnum3, null, dEnum, true);
assertNotNull(dEnum);
assertTrue(dEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
final int freq = dEnum.freq();
@@ -506,7 +506,7 @@ public class TestStressIndexing2 extends
}
//System.out.println("TEST: term1=" + term1);
- docs1 = termsEnum1.docs(liveDocs1, docs1);
+ docs1 = _TestUtil.docs(random, termsEnum1, liveDocs1, docs1, true);
while (docs1.nextDoc() != DocsEnum.NO_MORE_DOCS) {
int d = docs1.docID();
int f = docs1.freq();
@@ -540,7 +540,7 @@ public class TestStressIndexing2 extends
}
//System.out.println("TEST: term1=" + term1);
- docs2 = termsEnum2.docs(liveDocs2, docs2);
+ docs2 = _TestUtil.docs(random, termsEnum2, liveDocs2, docs2, true);
while (docs2.nextDoc() != DocsEnum.NO_MORE_DOCS) {
int d = r2r1[docs2.docID()];
int f = docs2.freq();
@@ -667,8 +667,8 @@ public class TestStressIndexing2 extends
assertEquals(DocsEnum.NO_MORE_DOCS, dpEnum1.nextDoc());
assertEquals(DocsEnum.NO_MORE_DOCS, dpEnum2.nextDoc());
} else {
- dEnum1 = termsEnum1.docs(null, dEnum1);
- dEnum2 = termsEnum2.docs(null, dEnum2);
+ dEnum1 = _TestUtil.docs(random, termsEnum1, null, dEnum1, true);
+ dEnum2 = _TestUtil.docs(random, termsEnum2, null, dEnum2, true);
assertNotNull(dEnum1);
assertNotNull(dEnum2);
int docID1 = dEnum1.nextDoc();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java Sun Dec 4 18:50:58 2011
@@ -24,9 +24,9 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
@@ -37,6 +37,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestTermVectorsReader extends LuceneTestCase {
//Must be lexicographically sorted, will do in setup, versus trying to maintain here
@@ -231,7 +232,7 @@ public class TestTermVectorsReader exten
//System.out.println("Term: " + term);
assertEquals(testTerms[i], term);
- docsEnum = termsEnum.docs(null, docsEnum);
+ docsEnum = _TestUtil.docs(random, termsEnum, null, docsEnum, false);
assertNotNull(docsEnum);
int doc = docsEnum.docID();
assertTrue(doc == -1 || doc == DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java Sun Dec 4 18:50:58 2011
@@ -28,8 +28,9 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
class RepeatingTokenStream extends Tokenizer {
@@ -121,7 +122,7 @@ public class TestTermdocPerf extends Luc
DocsEnum tdocs = null;
for (int i=0; i<iter; i++) {
tenum.seekCeil(new BytesRef("val"));
- tdocs = tenum.docs(MultiFields.getLiveDocs(reader), tdocs);
+ tdocs = _TestUtil.docs(random, tenum, MultiFields.getLiveDocs(reader), tdocs, false);
while (tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
ret += tdocs.docID();
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java Sun Dec 4 18:50:58 2011
@@ -331,7 +331,7 @@ public class TestTermsEnum extends Lucen
}
assertEquals(expected, actual);
assertEquals(1, te.docFreq());
- docsEnum = te.docs(null, docsEnum);
+ docsEnum = _TestUtil.docs(random, te, null, docsEnum, false);
final int docID = docsEnum.nextDoc();
assertTrue(docID != DocsEnum.NO_MORE_DOCS);
assertEquals(docIDToID[docID], termToID.get(expected).intValue());
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java Sun Dec 4 18:50:58 2011
@@ -85,7 +85,7 @@ public class Test10KPulsings extends Luc
for (int i = 0; i < 10050; i++) {
String expected = df.format(i);
assertEquals(expected, te.next().utf8ToString());
- de = te.docs(null, de);
+ de = _TestUtil.docs(random, te, null, de, false);
assertTrue(de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(DocIdSetIterator.NO_MORE_DOCS, de.nextDoc());
}
@@ -143,7 +143,7 @@ public class Test10KPulsings extends Luc
for (int i = 0; i < 10050; i++) {
String expected = df.format(i);
assertEquals(expected, te.next().utf8ToString());
- de = te.docs(null, de);
+ de = _TestUtil.docs(random, te, null, de, false);
assertTrue(de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(DocIdSetIterator.NO_MORE_DOCS, de.nextDoc());
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java Sun Dec 4 18:50:58 2011
@@ -59,7 +59,7 @@ public class TestPulsingReuse extends Lu
Map<DocsEnum,Boolean> allEnums = new IdentityHashMap<DocsEnum,Boolean>();
TermsEnum te = segment.terms("foo").iterator(null);
while (te.next() != null) {
- reuse = te.docs(null, reuse);
+ reuse = te.docs(null, reuse, false);
allEnums.put(reuse, true);
}
@@ -101,7 +101,7 @@ public class TestPulsingReuse extends Lu
Map<DocsEnum,Boolean> allEnums = new IdentityHashMap<DocsEnum,Boolean>();
TermsEnum te = segment.terms("foo").iterator(null);
while (te.next() != null) {
- reuse = te.docs(null, reuse);
+ reuse = te.docs(null, reuse, false);
allEnums.put(reuse, true);
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java?rev=1210176&r1=1210175&r2=1210176&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java Sun Dec 4 18:50:58 2011
@@ -35,6 +35,7 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.English;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestTermVectors extends LuceneTestCase {
private IndexSearcher searcher;
@@ -269,7 +270,7 @@ public class TestTermVectors extends Luc
while (termsEnum.next() != null) {
String text = termsEnum.term().utf8ToString();
- docs = termsEnum.docs(MultiFields.getLiveDocs(knownSearcher.reader), docs);
+ docs = _TestUtil.docs(random, termsEnum, MultiFields.getLiveDocs(knownSearcher.reader), docs, true);
while (docs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
int docId = docs.docID();