You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2012/08/13 15:53:27 UTC
svn commit: r1372423 [34/45] - in /lucene/dev/branches/LUCENE-2878: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/
dev-tools/maven/ dev-tools/maven/lucene/
dev-tools/maven/lucene/analysis/common/
dev-tools/maven/lucene/analysis/icu/ d...
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java Mon Aug 13 13:52:46 2012
@@ -121,7 +121,7 @@ public class TestMultiFields extends Luc
System.out.println("TEST: seek term="+ UnicodeUtil.toHexString(term.utf8ToString()) + " " + term);
}
- DocsEnum docsEnum = _TestUtil.docs(random(), reader, "field", term, liveDocs, null, false);
+ DocsEnum docsEnum = _TestUtil.docs(random(), reader, "field", term, liveDocs, null, 0);
assertNotNull(docsEnum);
for(int docID : docs.get(term)) {
@@ -162,11 +162,29 @@ public class TestMultiFields extends Luc
w.addDocument(d);
IndexReader r = w.getReader();
w.close();
- 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);
+ DocsEnum d1 = _TestUtil.docs(random(), r, "f", new BytesRef("j"), null, null, 0);
+ DocsEnum d2 = _TestUtil.docs(random(), r, "f", new BytesRef("j"), null, null, 0);
assertEquals(0, d1.nextDoc());
assertEquals(0, d2.nextDoc());
r.close();
dir.close();
}
+
+ public void testTermDocsEnum() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
+ Document d = new Document();
+ d.add(newStringField("f", "j", Field.Store.NO));
+ w.addDocument(d);
+ w.commit();
+ w.addDocument(d);
+ IndexReader r = w.getReader();
+ w.close();
+ DocsEnum de = MultiFields.getTermDocsEnum(r, null, "f", new BytesRef("j"));
+ assertEquals(0, de.nextDoc());
+ assertEquals(1, de.nextDoc());
+ assertEquals(DocIdSetIterator.NO_MORE_DOCS, de.nextDoc());
+ r.close();
+ dir.close();
+ }
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java Mon Aug 13 13:52:46 2012
@@ -86,8 +86,7 @@ public class TestMultiLevelSkipList exte
counter = 0;
DocsAndPositionsEnum tp = reader.termPositionsEnum(reader.getLiveDocs(),
term.field(),
- new BytesRef(term.text()),
- false);
+ new BytesRef(term.text()));
checkSkipTo(tp, 14, 185); // no skips
checkSkipTo(tp, 17, 190); // one skip on level 0
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java Mon Aug 13 13:52:46 2012
@@ -28,7 +28,7 @@ import org.apache.lucene.util.LuceneTest
// - mix in forceMerge, addIndexes
// - randomoly mix in non-congruent docs
-@SuppressCodecs({ "SimpleText", "Memory" })
+@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
public class TestNRTThreads extends ThreadedIndexingAndSearchingTestCase {
@Override
@@ -54,7 +54,7 @@ public class TestNRTThreads extends Thre
}
r.close();
writer.commit();
- final Set<String> openDeletedFiles = ((MockDirectoryWrapper) dir).getOpenDeletedFiles();
+ final Set<String> openDeletedFiles = dir.getOpenDeletedFiles();
if (openDeletedFiles.size() > 0) {
System.out.println("OBD files: " + openDeletedFiles);
}
@@ -80,7 +80,7 @@ public class TestNRTThreads extends Thre
r.close();
//System.out.println("numDocs=" + r.numDocs() + " openDelFileCount=" + dir.openDeleteFileCount());
- final Set<String> openDeletedFiles = ((MockDirectoryWrapper) dir).getOpenDeletedFiles();
+ final Set<String> openDeletedFiles = dir.getOpenDeletedFiles();
if (openDeletedFiles.size() > 0) {
System.out.println("OBD files: " + openDeletedFiles);
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java Mon Aug 13 13:52:46 2012
@@ -24,6 +24,7 @@ import java.util.Set;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.store.BaseDirectoryWrapper;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util._TestUtil;
@@ -35,12 +36,14 @@ public class TestNeverDelete extends Luc
public void testIndexing() throws Exception {
final File tmpDir = _TestUtil.getTempDir("TestNeverDelete");
- final MockDirectoryWrapper d = newFSDirectory(tmpDir);
+ final BaseDirectoryWrapper d = newFSDirectory(tmpDir);
// We want to "see" files removed if Lucene removed
// them. This is still worth running on Windows since
// some files the IR opens and closes.
- d.setNoDeleteOpenFile(false);
+ if (d instanceof MockDirectoryWrapper) {
+ ((MockDirectoryWrapper)d).setNoDeleteOpenFile(false);
+ }
final RandomIndexWriter w = new RandomIndexWriter(random(),
d,
newIndexWriterConfig(TEST_VERSION_CURRENT,
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNorms.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNorms.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestNorms.java Mon Aug 13 13:52:46 2012
@@ -40,7 +40,7 @@ import org.apache.lucene.util._TestUtil;
* Test that norms info is preserved during index life - including
* separate norms, addDocument, addIndexes, forceMerge.
*/
-@SuppressCodecs({ "SimpleText", "Memory" })
+@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
@Slow
public class TestNorms extends LuceneTestCase {
final String byteTestField = "normsTestByte";
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java Mon Aug 13 13:52:46 2012
@@ -51,9 +51,9 @@ public class TestOmitPositions extends L
IndexReader reader = w.getReader();
w.close();
- assertNull(MultiFields.getTermPositionsEnum(reader, null, "foo", new BytesRef("test"), false));
+ assertNull(MultiFields.getTermPositionsEnum(reader, null, "foo", new BytesRef("test")));
- DocsEnum de = _TestUtil.docs(random(), reader, "foo", new BytesRef("test"), null, null, true);
+ DocsEnum de = _TestUtil.docs(random(), reader, "foo", new BytesRef("test"), null, null, DocsEnum.FLAG_FREQS);
while (de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
assertEquals(2, de.freq());
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java Mon Aug 13 13:52:46 2012
@@ -18,6 +18,7 @@ package org.apache.lucene.index;
*/
import java.io.IOException;
+import java.util.Iterator;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
@@ -81,7 +82,7 @@ public class TestParallelTermEnum extend
BytesRef b = te.next();
assertNotNull(b);
assertEquals(t, b.utf8ToString());
- DocsEnum td = _TestUtil.docs(random(), te, liveDocs, null, false);
+ DocsEnum td = _TestUtil.docs(random(), te, liveDocs, null, 0);
assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(0, td.docID());
assertEquals(td.nextDoc(), DocIdSetIterator.NO_MORE_DOCS);
@@ -94,20 +95,21 @@ public class TestParallelTermEnum extend
Bits liveDocs = pr.getLiveDocs();
- FieldsEnum fe = pr.fields().iterator();
+ Fields fields = pr.fields();
+ Iterator<String> fe = fields.iterator();
String f = fe.next();
assertEquals("field1", f);
- checkTerms(fe.terms(), liveDocs, "brown", "fox", "jumps", "quick", "the");
+ checkTerms(fields.terms(f), liveDocs, "brown", "fox", "jumps", "quick", "the");
f = fe.next();
assertEquals("field2", f);
- checkTerms(fe.terms(), liveDocs, "brown", "fox", "jumps", "quick", "the");
+ checkTerms(fields.terms(f), liveDocs, "brown", "fox", "jumps", "quick", "the");
f = fe.next();
assertEquals("field3", f);
- checkTerms(fe.terms(), liveDocs, "dog", "fox", "jumps", "lazy", "over", "the");
+ checkTerms(fields.terms(f), liveDocs, "dog", "fox", "jumps", "lazy", "over", "the");
- assertNull(fe.next());
+ assertFalse(fe.hasNext());
}
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java Mon Aug 13 13:52:46 2012
@@ -145,8 +145,18 @@ public class TestPayloadProcessorProvide
Document doc = new Document();
doc.add(newField("id", "doc" + i, customType));
doc.add(newTextField("content", "doc content " + i, Field.Store.NO));
- doc.add(new TextField("p", payloadTS1));
- doc.add(new TextField("p", payloadTS2));
+ if (random.nextBoolean()) {
+ doc.add(new TextField("p", payloadTS1));
+ doc.add(new TextField("p", payloadTS2));
+ } else {
+ FieldType type = new FieldType(TextField.TYPE_NOT_STORED);
+ type.setStoreTermVectors(true);
+ type.setStoreTermVectorPositions(true);
+ type.setStoreTermVectorPayloads(true);
+ type.setStoreTermVectorOffsets(random.nextBoolean());
+ doc.add(new Field("p", payloadTS1, type));
+ doc.add(new Field("p", payloadTS2, type));
+ }
writer.addDocument(doc);
if (multipleCommits && (i % 4 == 0)) {
writer.commit();
@@ -160,11 +170,11 @@ public class TestPayloadProcessorProvide
IndexReader reader = DirectoryReader.open(dir);
try {
int numPayloads = 0;
- DocsAndPositionsEnum tpe = MultiFields.getTermPositionsEnum(reader, null, field, text, false);
+ DocsAndPositionsEnum tpe = MultiFields.getTermPositionsEnum(reader, null, field, text);
while (tpe.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
tpe.nextPosition();
- if (tpe.hasPayload()) {
- BytesRef payload = tpe.getPayload();
+ BytesRef payload = tpe.getPayload();
+ if (payload != null) {
assertEquals(1, payload.length);
assertEquals(1, payload.bytes[0]);
++numPayloads;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java Mon Aug 13 13:52:46 2012
@@ -19,6 +19,7 @@ package org.apache.lucene.index;
import java.io.IOException;
import java.io.Reader;
+import java.io.StringReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
@@ -188,8 +189,7 @@ public class TestPayloads extends Lucene
tps[i] = MultiFields.getTermPositionsEnum(reader,
MultiFields.getLiveDocs(reader),
terms[i].field(),
- new BytesRef(terms[i].text()),
- false);
+ new BytesRef(terms[i].text()));
}
while (tps[0].nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
@@ -201,18 +201,10 @@ public class TestPayloads extends Lucene
for (int i = 0; i < freq; i++) {
for (int j = 0; j < numTerms; j++) {
tps[j].nextPosition();
- if (tps[j].hasPayload()) {
- BytesRef br = tps[j].getPayload();
+ BytesRef br = tps[j].getPayload();
+ if (br != null) {
System.arraycopy(br.bytes, br.offset, verifyPayloadData, offset, br.length);
offset += br.length;
- // Just to ensure all codecs can
- // handle a caller that mucks with the
- // returned payload:
- if (rarely()) {
- br.bytes = new byte[random().nextInt(5)];
- }
- br.length = 0;
- br.offset = 0;
}
}
}
@@ -226,8 +218,7 @@ public class TestPayloads extends Lucene
DocsAndPositionsEnum tp = MultiFields.getTermPositionsEnum(reader,
MultiFields.getLiveDocs(reader),
terms[0].field(),
- new BytesRef(terms[0].text()),
- false);
+ new BytesRef(terms[0].text()));
tp.nextDoc();
tp.nextPosition();
// NOTE: prior rev of this test was failing to first
@@ -255,8 +246,7 @@ public class TestPayloads extends Lucene
tp = MultiFields.getTermPositionsEnum(reader,
MultiFields.getLiveDocs(reader),
terms[1].field(),
- new BytesRef(terms[1].text()),
- false);
+ new BytesRef(terms[1].text()));
tp.nextDoc();
tp.nextPosition();
assertEquals("Wrong payload length.", 1, tp.getPayload().length);
@@ -270,11 +260,6 @@ public class TestPayloads extends Lucene
tp.nextPosition();
assertEquals("Wrong payload length.", 3 * skipInterval - 2 * numDocs - 1, tp.getPayload().length);
- /*
- * Test multiple call of getPayload()
- */
- assertFalse(tp.hasPayload());
-
reader.close();
// test long payload
@@ -299,8 +284,7 @@ public class TestPayloads extends Lucene
tp = MultiFields.getTermPositionsEnum(reader,
MultiFields.getLiveDocs(reader),
fieldName,
- new BytesRef(singleTerm),
- false);
+ new BytesRef(singleTerm));
tp.nextDoc();
tp.nextPosition();
@@ -501,7 +485,7 @@ public class TestPayloads extends Lucene
DocsAndPositionsEnum tp = null;
while (terms.next() != null) {
String termText = terms.term().utf8ToString();
- tp = terms.docsAndPositions(liveDocs, tp, false);
+ tp = terms.docsAndPositions(liveDocs, tp);
while(tp.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
int freq = tp.freq();
for (int i = 0; i < freq; i++) {
@@ -595,4 +579,73 @@ public class TestPayloads extends Lucene
dir.close();
}
+
+ /** some docs have payload att, some not */
+ public void testMixupDocs() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, null);
+ iwc.setMergePolicy(newLogMergePolicy());
+ RandomIndexWriter writer = new RandomIndexWriter(random(), dir, iwc);
+ Document doc = new Document();
+ Field field = new TextField("field", "", Field.Store.NO);
+ TokenStream ts = new MockTokenizer(new StringReader("here we go"), MockTokenizer.WHITESPACE, true);
+ assertFalse(ts.hasAttribute(PayloadAttribute.class));
+ field.setTokenStream(ts);
+ doc.add(field);
+ writer.addDocument(doc);
+ Token withPayload = new Token("withPayload", 0, 11);
+ withPayload.setPayload(new BytesRef("test"));
+ ts = new CannedTokenStream(withPayload);
+ assertTrue(ts.hasAttribute(PayloadAttribute.class));
+ field.setTokenStream(ts);
+ writer.addDocument(doc);
+ ts = new MockTokenizer(new StringReader("another"), MockTokenizer.WHITESPACE, true);
+ assertFalse(ts.hasAttribute(PayloadAttribute.class));
+ field.setTokenStream(ts);
+ writer.addDocument(doc);
+ DirectoryReader reader = writer.getReader();
+ AtomicReader sr = reader.getSequentialSubReaders().get(0);
+ DocsAndPositionsEnum de = sr.termPositionsEnum(null, "field", new BytesRef("withPayload"));
+ de.nextDoc();
+ de.nextPosition();
+ assertEquals(new BytesRef("test"), de.getPayload());
+ writer.close();
+ reader.close();
+ dir.close();
+ }
+
+ /** some field instances have payload att, some not */
+ public void testMixupMultiValued() throws Exception {
+ Directory dir = newDirectory();
+ RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
+ Document doc = new Document();
+ Field field = new TextField("field", "", Field.Store.NO);
+ TokenStream ts = new MockTokenizer(new StringReader("here we go"), MockTokenizer.WHITESPACE, true);
+ assertFalse(ts.hasAttribute(PayloadAttribute.class));
+ field.setTokenStream(ts);
+ doc.add(field);
+ Field field2 = new TextField("field", "", Field.Store.NO);
+ Token withPayload = new Token("withPayload", 0, 11);
+ withPayload.setPayload(new BytesRef("test"));
+ ts = new CannedTokenStream(withPayload);
+ assertTrue(ts.hasAttribute(PayloadAttribute.class));
+ field2.setTokenStream(ts);
+ doc.add(field2);
+ Field field3 = new TextField("field", "", Field.Store.NO);
+ ts = new MockTokenizer(new StringReader("nopayload"), MockTokenizer.WHITESPACE, true);
+ assertFalse(ts.hasAttribute(PayloadAttribute.class));
+ field3.setTokenStream(ts);
+ doc.add(field3);
+ writer.addDocument(doc);
+ DirectoryReader reader = writer.getReader();
+ SegmentReader sr = getOnlySegmentReader(reader);
+ DocsAndPositionsEnum de = sr.termPositionsEnum(null, "field", new BytesRef("withPayload"));
+ de.nextDoc();
+ de.nextPosition();
+ assertEquals(new BytesRef("test"), de.getPayload());
+ writer.close();
+ reader.close();
+ dir.close();
+ }
+
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java Mon Aug 13 13:52:46 2012
@@ -227,7 +227,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 = _TestUtil.docs(random(), ctermsEnum, bits, null, false);
+ DocsEnum docsEnum = _TestUtil.docs(random(), ctermsEnum, bits, null, 0);
return toArray(docsEnum);
}
return null;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java Mon Aug 13 13:52:46 2012
@@ -83,7 +83,7 @@ public class TestPostingsOffsets extends
IndexReader r = w.getReader();
w.close();
- DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("a"), true);
+ DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("a"));
assertNotNull(dp);
assertEquals(0, dp.nextDoc());
assertEquals(2, dp.freq());
@@ -95,7 +95,7 @@ public class TestPostingsOffsets extends
assertEquals(17, dp.endOffset());
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dp.nextDoc());
- dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("b"), true);
+ dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("b"));
assertNotNull(dp);
assertEquals(0, dp.nextDoc());
assertEquals(1, dp.freq());
@@ -104,7 +104,7 @@ public class TestPostingsOffsets extends
assertEquals(9, dp.endOffset());
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dp.nextDoc());
- dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("c"), true);
+ dp = MultiFields.getTermPositionsEnum(r, null, "content", new BytesRef("c"));
assertNotNull(dp);
assertEquals(0, dp.nextDoc());
assertEquals(1, dp.freq());
@@ -155,7 +155,7 @@ public class TestPostingsOffsets extends
String terms[] = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "hundred" };
for (String term : terms) {
- DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(reader, null, "numbers", new BytesRef(term), true);
+ DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(reader, null, "numbers", new BytesRef(term));
int doc;
while((doc = dp.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
String storedNumbers = reader.document(doc).get("numbers");
@@ -170,7 +170,7 @@ public class TestPostingsOffsets extends
assertTrue(storedNumbers.substring(start, end).equals(term));
if (withPayloads) {
// check that we have a payload and it starts with "pos"
- assertTrue(dp.hasPayload());
+ assertNotNull(dp.getPayload());
BytesRef payload = dp.getPayload();
assertTrue(payload.utf8ToString().startsWith("pos:"));
} // note: withPayloads=false doesnt necessarily mean we dont have them from MockAnalyzer!
@@ -183,7 +183,7 @@ public class TestPostingsOffsets extends
for (int j = 0; j < numSkippingTests; j++) {
int num = _TestUtil.nextInt(random(), 100, Math.min(numDocs-1, 999));
- DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(reader, null, "numbers", new BytesRef("hundred"), true);
+ DocsAndPositionsEnum dp = MultiFields.getTermPositionsEnum(reader, null, "numbers", new BytesRef("hundred"));
int doc = dp.advance(num);
assertEquals(num, doc);
int freq = dp.freq();
@@ -198,7 +198,7 @@ public class TestPostingsOffsets extends
assertTrue(storedNumbers.substring(start, end).equals("hundred"));
if (withPayloads) {
// check that we have a payload and it starts with "pos"
- assertTrue(dp.hasPayload());
+ assertNotNull(dp.getPayload());
BytesRef payload = dp.getPayload();
assertTrue(payload.utf8ToString().startsWith("pos:"));
} // note: withPayloads=false doesnt necessarily mean we dont have them from MockAnalyzer!
@@ -208,7 +208,7 @@ public class TestPostingsOffsets extends
// check that other fields (without offsets) work correctly
for (int i = 0; i < numDocs; i++) {
- DocsEnum dp = MultiFields.getTermDocsEnum(reader, null, "id", new BytesRef("" + i), false);
+ DocsEnum dp = MultiFields.getTermDocsEnum(reader, null, "id", new BytesRef("" + i), 0);
assertEquals(i, dp.nextDoc());
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dp.nextDoc());
}
@@ -301,7 +301,7 @@ public class TestPostingsOffsets extends
for(String term : terms) {
//System.out.println(" term=" + term);
if (termsEnum.seekExact(new BytesRef(term), random().nextBoolean())) {
- docs = termsEnum.docs(null, docs, true);
+ docs = termsEnum.docs(null, docs);
assertNotNull(docs);
int doc;
//System.out.println(" doc/freq");
@@ -312,7 +312,8 @@ public class TestPostingsOffsets extends
assertEquals(expected.size(), docs.freq());
}
- docsAndPositions = termsEnum.docsAndPositions(null, docsAndPositions, false);
+ // explicitly exclude offsets here
+ docsAndPositions = termsEnum.docsAndPositions(null, docsAndPositions, DocsAndPositionsEnum.FLAG_PAYLOADS);
assertNotNull(docsAndPositions);
//System.out.println(" doc/freq/pos");
while((doc = docsAndPositions.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
@@ -327,7 +328,7 @@ public class TestPostingsOffsets extends
}
}
- docsAndPositionsAndOffsets = termsEnum.docsAndPositions(null, docsAndPositions, true);
+ docsAndPositionsAndOffsets = termsEnum.docsAndPositions(null, docsAndPositions);
assertNotNull(docsAndPositionsAndOffsets);
//System.out.println(" doc/freq/pos/offs");
while((doc = docsAndPositionsAndOffsets.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java Mon Aug 13 13:52:46 2012
@@ -25,6 +25,7 @@ import java.util.Set;
import java.util.TreeSet;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.MergedIterator;
import org.apache.lucene.util._TestUtil;
public class TestPrefixCodedTerms extends LuceneTestCase {
@@ -67,17 +68,20 @@ public class TestPrefixCodedTerms extend
assertFalse(expected.hasNext());
}
+ @SuppressWarnings("unchecked")
public void testMergeEmpty() {
List<Iterator<Term>> subs = Collections.emptyList();
- assertFalse(CoalescedDeletes.mergedIterator(subs).hasNext());
+ Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ assertFalse(merged.hasNext());
subs = new ArrayList<Iterator<Term>>();
subs.add(new PrefixCodedTerms.Builder().finish().iterator());
subs.add(new PrefixCodedTerms.Builder().finish().iterator());
- Iterator<Term> merged = CoalescedDeletes.mergedIterator(subs);
+ merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
assertFalse(merged.hasNext());
}
+ @SuppressWarnings("unchecked")
public void testMergeOne() {
Term t1 = new Term("foo", "a");
PrefixCodedTerms.Builder b1 = new PrefixCodedTerms.Builder();
@@ -93,13 +97,14 @@ public class TestPrefixCodedTerms extend
subs.add(pb1.iterator());
subs.add(pb2.iterator());
- Iterator<Term> merged = CoalescedDeletes.mergedIterator(subs);
+ Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
assertTrue(merged.hasNext());
assertEquals(t1, merged.next());
assertTrue(merged.hasNext());
assertEquals(t2, merged.next());
}
+ @SuppressWarnings("unchecked")
public void testMergeRandom() {
PrefixCodedTerms pb[] = new PrefixCodedTerms[_TestUtil.nextInt(random(), 2, 10)];
Set<Term> superSet = new TreeSet<Term>();
@@ -126,7 +131,7 @@ public class TestPrefixCodedTerms extend
}
Iterator<Term> expected = superSet.iterator();
- Iterator<Term> actual = CoalescedDeletes.mergedIterator(subs);
+ Iterator<Term> actual = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
while (actual.hasNext()) {
assertTrue(expected.hasNext());
assertEquals(expected.next(), actual.next());
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java Mon Aug 13 13:52:46 2012
@@ -67,13 +67,15 @@ public class TestReaderClosed extends Lu
// expected
}
}
-
+
// LUCENE-3800
public void testReaderChaining() throws Exception {
assertTrue(reader.getRefCount() > 0);
IndexReader wrappedReader = SlowCompositeReaderWrapper.wrap(reader);
wrappedReader = new ParallelAtomicReader((AtomicReader) wrappedReader);
+
IndexSearcher searcher = newSearcher(wrappedReader);
+
TermRangeQuery query = TermRangeQuery.newStringRange("field", "a", "z", true, true);
searcher.search(query, 5);
reader.close(); // close original child reader
@@ -84,6 +86,9 @@ public class TestReaderClosed extends Lu
"this IndexReader cannot be used anymore as one of its child readers was closed",
ace.getMessage()
);
+ } finally {
+ // shutdown executor: in case of wrap-wrap-wrapping
+ searcher.getIndexReader().close();
}
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java Mon Aug 13 13:52:46 2012
@@ -23,6 +23,9 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.codecs.memory.MemoryPostingsFormat;
import org.apache.lucene.document.*;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.*;
import org.apache.lucene.util.*;
import org.junit.Test;
@@ -35,7 +38,7 @@ public class TestRollingUpdates extends
@Test
public void testRollingUpdates() throws Exception {
Random random = new Random(random().nextLong());
- final MockDirectoryWrapper dir = newDirectory();
+ final BaseDirectoryWrapper dir = newDirectory();
dir.setCheckIndexOnClose(false); // we use a custom codec provider
final LineFileDocs docs = new LineFileDocs(random, true);
@@ -48,10 +51,13 @@ public class TestRollingUpdates extends
final int SIZE = atLeast(20);
int id = 0;
IndexReader r = null;
+ IndexSearcher s = null;
final int numUpdates = (int) (SIZE * (2+(TEST_NIGHTLY ? 200*random().nextDouble() : 5*random().nextDouble())));
if (VERBOSE) {
System.out.println("TEST: numUpdates=" + numUpdates);
}
+ int updateCount = 0;
+ // TODO: sometimes update ids not in order...
for(int docIter=0;docIter<numUpdates;docIter++) {
final Document doc = docs.nextDoc();
final String myID = ""+id;
@@ -60,16 +66,59 @@ public class TestRollingUpdates extends
} else {
id++;
}
+ if (VERBOSE) {
+ System.out.println(" docIter=" + docIter + " id=" + id);
+ }
((Field) doc.getField("docid")).setStringValue(myID);
- w.updateDocument(new Term("docid", myID), doc);
+
+ Term idTerm = new Term("docid", myID);
+
+ final boolean doUpdate;
+ if (s != null && updateCount < SIZE) {
+ TopDocs hits = s.search(new TermQuery(idTerm), 1);
+ assertEquals(1, hits.totalHits);
+ doUpdate = !w.tryDeleteDocument(r, hits.scoreDocs[0].doc);
+ if (VERBOSE) {
+ if (doUpdate) {
+ System.out.println(" tryDeleteDocument failed");
+ } else {
+ System.out.println(" tryDeleteDocument succeeded");
+ }
+ }
+ } else {
+ doUpdate = true;
+ if (VERBOSE) {
+ System.out.println(" no searcher: doUpdate=true");
+ }
+ }
+
+ updateCount++;
+
+ if (doUpdate) {
+ w.updateDocument(idTerm, doc);
+ } else {
+ w.addDocument(doc);
+ }
if (docIter >= SIZE && random().nextInt(50) == 17) {
if (r != null) {
r.close();
}
+
final boolean applyDeletions = random().nextBoolean();
+
+ if (VERBOSE) {
+ System.out.println("TEST: reopen applyDeletions=" + applyDeletions);
+ }
+
r = w.getReader(applyDeletions);
+ if (applyDeletions) {
+ s = new IndexSearcher(r);
+ } else {
+ s = null;
+ }
assertTrue("applyDeletions=" + applyDeletions + " r.numDocs()=" + r.numDocs() + " vs SIZE=" + SIZE, !applyDeletions || r.numDocs() == SIZE);
+ updateCount = 0;
}
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java Mon Aug 13 13:52:46 2012
@@ -109,7 +109,7 @@ public class TestSegmentMerger extends L
new BytesRef("field"),
MultiFields.getLiveDocs(mergedReader),
null,
- false);
+ 0);
assertTrue(termDocs != null);
assertTrue(termDocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java Mon Aug 13 13:52:46 2012
@@ -114,10 +114,9 @@ public class TestSegmentReader extends L
}
public void testTerms() throws IOException {
- FieldsEnum fields = MultiFields.getFields(reader).iterator();
- String field;
- while((field = fields.next()) != null) {
- Terms terms = fields.terms();
+ Fields fields = MultiFields.getFields(reader);
+ for (String field : fields) {
+ Terms terms = fields.terms(field);
assertNotNull(terms);
TermsEnum termsEnum = terms.iterator(null);
while(termsEnum.next() != null) {
@@ -133,7 +132,7 @@ public class TestSegmentReader extends L
new BytesRef("field"),
MultiFields.getLiveDocs(reader),
null,
- false);
+ 0);
assertTrue(termDocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
termDocs = _TestUtil.docs(random(), reader,
@@ -141,7 +140,7 @@ public class TestSegmentReader extends L
new BytesRef(DocHelper.NO_NORMS_TEXT),
MultiFields.getLiveDocs(reader),
null,
- false);
+ 0);
assertTrue(termDocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -149,8 +148,7 @@ public class TestSegmentReader extends L
DocsAndPositionsEnum positions = MultiFields.getTermPositionsEnum(reader,
MultiFields.getLiveDocs(reader),
DocHelper.TEXT_FIELD_1_KEY,
- new BytesRef("field"),
- false);
+ new BytesRef("field"));
// NOTE: prior rev of this test was failing to first
// call next here:
assertTrue(positions.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java Mon Aug 13 13:52:46 2012
@@ -63,7 +63,7 @@ public class TestSegmentTermDocs extends
TermsEnum terms = reader.fields().terms(DocHelper.TEXT_FIELD_2_KEY).iterator(null);
terms.seekCeil(new BytesRef("field"));
- DocsEnum termDocs = _TestUtil.docs(random(), terms, reader.getLiveDocs(), null, true);
+ DocsEnum termDocs = _TestUtil.docs(random(), terms, reader.getLiveDocs(), null, DocsEnum.FLAG_FREQS);
if (termDocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
int docId = termDocs.docID();
assertTrue(docId == 0);
@@ -87,7 +87,7 @@ public class TestSegmentTermDocs extends
new BytesRef("bad"),
reader.getLiveDocs(),
null,
- false);
+ 0);
assertNull(termDocs);
reader.close();
@@ -101,7 +101,7 @@ public class TestSegmentTermDocs extends
new BytesRef("bad"),
reader.getLiveDocs(),
null,
- false);
+ 0);
assertNull(termDocs);
reader.close();
}
@@ -138,7 +138,7 @@ public class TestSegmentTermDocs extends
new BytesRef(ta.text()),
MultiFields.getLiveDocs(reader),
null,
- true);
+ DocsEnum.FLAG_FREQS);
// without optimization (assumption skipInterval == 16)
@@ -163,7 +163,7 @@ public class TestSegmentTermDocs extends
new BytesRef(ta.text()),
MultiFields.getLiveDocs(reader),
null,
- false);
+ 0);
assertTrue(tdocs.advance(0) != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(0, tdocs.docID());
@@ -181,7 +181,7 @@ public class TestSegmentTermDocs extends
new BytesRef(tb.text()),
MultiFields.getLiveDocs(reader),
null,
- true);
+ DocsEnum.FLAG_FREQS);
assertTrue(tdocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(10, tdocs.docID());
@@ -205,7 +205,7 @@ public class TestSegmentTermDocs extends
new BytesRef(tb.text()),
MultiFields.getLiveDocs(reader),
null,
- true);
+ DocsEnum.FLAG_FREQS);
assertTrue(tdocs.advance(5) != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(10, tdocs.docID());
@@ -225,7 +225,7 @@ public class TestSegmentTermDocs extends
new BytesRef(tc.text()),
MultiFields.getLiveDocs(reader),
null,
- true);
+ DocsEnum.FLAG_FREQS);
assertTrue(tdocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(26, tdocs.docID());
@@ -251,7 +251,7 @@ public class TestSegmentTermDocs extends
new BytesRef(tc.text()),
MultiFields.getLiveDocs(reader),
null,
- false);
+ 0);
assertTrue(tdocs.advance(5) != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(26, tdocs.docID());
assertTrue(tdocs.advance(40) != DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java Mon Aug 13 13:52:46 2012
@@ -82,11 +82,11 @@ public class TestStressAdvance extends L
System.out.println("\nTEST: iter=" + iter + " iter2=" + iter2);
}
assertEquals(TermsEnum.SeekStatus.FOUND, te.seekCeil(new BytesRef("a")));
- de = _TestUtil.docs(random(), te, null, de, false);
+ de = _TestUtil.docs(random(), te, null, de, 0);
testOne(de, aDocIDs);
assertEquals(TermsEnum.SeekStatus.FOUND, te.seekCeil(new BytesRef("b")));
- de = _TestUtil.docs(random(), te, null, de, false);
+ de = _TestUtil.docs(random(), te, null, de, 0);
testOne(de, bDocIDs);
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Mon Aug 13 13:52:46 2012
@@ -336,7 +336,7 @@ public class TestStressIndexing2 extends
// deleted docs):
DocsEnum docs = null;
while(termsEnum.next() != null) {
- docs = _TestUtil.docs(random(), termsEnum, null, docs, false);
+ docs = _TestUtil.docs(random(), termsEnum, null, docs, 0);
while(docs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
fail("r1 is not empty but r2 is");
}
@@ -356,9 +356,9 @@ public class TestStressIndexing2 extends
break;
}
- termDocs1 = _TestUtil.docs(random(), termsEnum, liveDocs1, termDocs1, false);
+ termDocs1 = _TestUtil.docs(random(), termsEnum, liveDocs1, termDocs1, 0);
if (termsEnum2.seekExact(term, false)) {
- termDocs2 = _TestUtil.docs(random(), termsEnum2, liveDocs2, termDocs2, false);
+ termDocs2 = _TestUtil.docs(random(), termsEnum2, liveDocs2, termDocs2, 0);
} else {
termDocs2 = null;
}
@@ -396,19 +396,17 @@ public class TestStressIndexing2 extends
Fields tv1 = r1.getTermVectors(id1);
System.out.println(" d1=" + tv1);
if (tv1 != null) {
- FieldsEnum fieldsEnum = tv1.iterator();
- String field;
DocsAndPositionsEnum dpEnum = null;
DocsEnum dEnum = null;
- while ((field=fieldsEnum.next()) != null) {
+ for (String field : tv1) {
System.out.println(" " + field + ":");
- Terms terms3 = fieldsEnum.terms();
+ Terms terms3 = tv1.terms(field);
assertNotNull(terms3);
TermsEnum termsEnum3 = terms3.iterator(null);
BytesRef term2;
while((term2 = termsEnum3.next()) != null) {
System.out.println(" " + term2.utf8ToString() + ": freq=" + termsEnum3.totalTermFreq());
- dpEnum = termsEnum3.docsAndPositions(null, dpEnum, false);
+ dpEnum = termsEnum3.docsAndPositions(null, dpEnum);
if (dpEnum != null) {
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
final int freq = dpEnum.freq();
@@ -417,7 +415,7 @@ public class TestStressIndexing2 extends
System.out.println(" pos=" + dpEnum.nextPosition());
}
} else {
- dEnum = _TestUtil.docs(random(), termsEnum3, null, dEnum, true);
+ dEnum = _TestUtil.docs(random(), termsEnum3, null, dEnum, DocsEnum.FLAG_FREQS);
assertNotNull(dEnum);
assertTrue(dEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
final int freq = dEnum.freq();
@@ -430,19 +428,17 @@ public class TestStressIndexing2 extends
Fields tv2 = r2.getTermVectors(id2);
System.out.println(" d2=" + tv2);
if (tv2 != null) {
- FieldsEnum fieldsEnum = tv2.iterator();
- String field;
DocsAndPositionsEnum dpEnum = null;
DocsEnum dEnum = null;
- while ((field=fieldsEnum.next()) != null) {
+ for (String field : tv2) {
System.out.println(" " + field + ":");
- Terms terms3 = fieldsEnum.terms();
+ Terms terms3 = tv2.terms(field);
assertNotNull(terms3);
TermsEnum termsEnum3 = terms3.iterator(null);
BytesRef term2;
while((term2 = termsEnum3.next()) != null) {
System.out.println(" " + term2.utf8ToString() + ": freq=" + termsEnum3.totalTermFreq());
- dpEnum = termsEnum3.docsAndPositions(null, dpEnum, false);
+ dpEnum = termsEnum3.docsAndPositions(null, dpEnum);
if (dpEnum != null) {
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
final int freq = dpEnum.freq();
@@ -451,7 +447,7 @@ public class TestStressIndexing2 extends
System.out.println(" pos=" + dpEnum.nextPosition());
}
} else {
- dEnum = _TestUtil.docs(random(), termsEnum3, null, dEnum, true);
+ dEnum = _TestUtil.docs(random(), termsEnum3, null, dEnum, DocsEnum.FLAG_FREQS);
assertNotNull(dEnum);
assertTrue(dEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
final int freq = dEnum.freq();
@@ -469,8 +465,11 @@ public class TestStressIndexing2 extends
// Verify postings
//System.out.println("TEST: create te1");
- final FieldsEnum fields1 = MultiFields.getFields(r1).iterator();
- final FieldsEnum fields2 = MultiFields.getFields(r2).iterator();
+ final Fields fields1 = MultiFields.getFields(r1);
+ final Iterator<String> fields1Enum = fields1.iterator();
+ final Fields fields2 = MultiFields.getFields(r2);
+ final Iterator<String> fields2Enum = fields2.iterator();
+
String field1=null, field2=null;
TermsEnum termsEnum1 = null;
@@ -489,16 +488,15 @@ public class TestStressIndexing2 extends
for(;;) {
len1=0;
if (termsEnum1 == null) {
- field1 = fields1.next();
- if (field1 == null) {
+ if (!fields1Enum.hasNext()) {
break;
- } else {
- Terms terms = fields1.terms();
- if (terms == null) {
- continue;
- }
- termsEnum1 = terms.iterator(null);
}
+ field1 = fields1Enum.next();
+ Terms terms = fields1.terms(field1);
+ if (terms == null) {
+ continue;
+ }
+ termsEnum1 = terms.iterator(null);
}
term1 = termsEnum1.next();
if (term1 == null) {
@@ -508,7 +506,7 @@ public class TestStressIndexing2 extends
}
//System.out.println("TEST: term1=" + term1);
- docs1 = _TestUtil.docs(random(), termsEnum1, liveDocs1, docs1, true);
+ docs1 = _TestUtil.docs(random(), termsEnum1, liveDocs1, docs1, DocsEnum.FLAG_FREQS);
while (docs1.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
int d = docs1.docID();
int f = docs1.freq();
@@ -523,16 +521,15 @@ public class TestStressIndexing2 extends
for(;;) {
len2=0;
if (termsEnum2 == null) {
- field2 = fields2.next();
- if (field2 == null) {
+ if (!fields2Enum.hasNext()) {
break;
- } else {
- Terms terms = fields2.terms();
- if (terms == null) {
- continue;
- }
- termsEnum2 = terms.iterator(null);
}
+ field2 = fields2Enum.next();
+ Terms terms = fields2.terms(field2);
+ if (terms == null) {
+ continue;
+ }
+ termsEnum2 = terms.iterator(null);
}
term2 = termsEnum2.next();
if (term2 == null) {
@@ -542,7 +539,7 @@ public class TestStressIndexing2 extends
}
//System.out.println("TEST: term1=" + term1);
- docs2 = _TestUtil.docs(random(), termsEnum2, liveDocs2, docs2, true);
+ docs2 = _TestUtil.docs(random(), termsEnum2, liveDocs2, docs2, DocsEnum.FLAG_FREQS);
while (docs2.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
int d = r2r1[docs2.docID()];
int f = docs2.freq();
@@ -605,18 +602,17 @@ public class TestStressIndexing2 extends
}
assertTrue(d2 != null);
- FieldsEnum fieldsEnum1 = d1.iterator();
- FieldsEnum fieldsEnum2 = d2.iterator();
- String field1;
- while ((field1 = fieldsEnum1.next()) != null) {
+ Iterator<String> fieldsEnum2 = d2.iterator();
+
+ for (String field1 : d1) {
String field2 = fieldsEnum2.next();
assertEquals(field1, field2);
- Terms terms1 = fieldsEnum1.terms();
+ Terms terms1 = d1.terms(field1);
assertNotNull(terms1);
TermsEnum termsEnum1 = terms1.iterator(null);
- Terms terms2 = fieldsEnum2.terms();
+ Terms terms2 = d2.terms(field2);
assertNotNull(terms2);
TermsEnum termsEnum2 = terms2.iterator(null);
@@ -632,8 +628,8 @@ public class TestStressIndexing2 extends
assertEquals(termsEnum1.totalTermFreq(),
termsEnum2.totalTermFreq());
- dpEnum1 = termsEnum1.docsAndPositions(null, dpEnum1, false);
- dpEnum2 = termsEnum2.docsAndPositions(null, dpEnum2, false);
+ dpEnum1 = termsEnum1.docsAndPositions(null, dpEnum1);
+ dpEnum2 = termsEnum2.docsAndPositions(null, dpEnum2);
if (dpEnum1 != null) {
assertNotNull(dpEnum2);
int docID1 = dpEnum1.nextDoc();
@@ -669,8 +665,8 @@ public class TestStressIndexing2 extends
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dpEnum1.nextDoc());
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dpEnum2.nextDoc());
} else {
- dEnum1 = _TestUtil.docs(random(), termsEnum1, null, dEnum1, true);
- dEnum2 = _TestUtil.docs(random(), termsEnum2, null, dEnum2, true);
+ dEnum1 = _TestUtil.docs(random(), termsEnum1, null, dEnum1, DocsEnum.FLAG_FREQS);
+ dEnum2 = _TestUtil.docs(random(), termsEnum2, null, dEnum2, DocsEnum.FLAG_FREQS);
assertNotNull(dEnum1);
assertNotNull(dEnum2);
int docID1 = dEnum1.nextDoc();
@@ -689,7 +685,7 @@ public class TestStressIndexing2 extends
assertNull(termsEnum2.next());
}
- assertNull(fieldsEnum2.next());
+ assertFalse(fieldsEnum2.hasNext());
}
private class IndexingThread extends Thread {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java Mon Aug 13 13:52:46 2012
@@ -74,9 +74,8 @@ public class TestSumDocFreq extends Luce
private void assertSumDocFreq(IndexReader ir) throws Exception {
// compute sumDocFreq across all fields
Fields fields = MultiFields.getFields(ir);
- FieldsEnum fieldEnum = fields.iterator();
- String f = null;
- while ((f = fieldEnum.next()) != null) {
+
+ for (String f : fields) {
Terms terms = fields.terms(f);
long sumDocFreq = terms.getSumDocFreq();
if (sumDocFreq == -1) {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java Mon Aug 13 13:52:46 2012
@@ -225,7 +225,7 @@ public class TestTermVectorsReader exten
//System.out.println("Term: " + term);
assertEquals(testTerms[i], term);
- docsEnum = _TestUtil.docs(random(), termsEnum, null, docsEnum, false);
+ docsEnum = _TestUtil.docs(random(), termsEnum, null, docsEnum, 0);
assertNotNull(docsEnum);
int doc = docsEnum.docID();
assertTrue(doc == -1 || doc == DocIdSetIterator.NO_MORE_DOCS);
@@ -252,7 +252,7 @@ public class TestTermVectorsReader exten
//System.out.println("Term: " + term);
assertEquals(testTerms[i], term);
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, false);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertNotNull(dpEnum);
int doc = dpEnum.docID();
assertTrue(doc == -1 || doc == DocIdSetIterator.NO_MORE_DOCS);
@@ -263,7 +263,7 @@ public class TestTermVectorsReader exten
}
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dpEnum.nextDoc());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
doc = dpEnum.docID();
assertTrue(doc == -1 || doc == DocIdSetIterator.NO_MORE_DOCS);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -306,7 +306,7 @@ public class TestTermVectorsReader exten
String term = text.utf8ToString();
assertEquals(testTerms[i], term);
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, false);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertNotNull(dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(dpEnum.freq(), positions[i].length);
@@ -315,7 +315,7 @@ public class TestTermVectorsReader exten
}
assertEquals(DocIdSetIterator.NO_MORE_DOCS, dpEnum.nextDoc());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertNotNull(dpEnum);
assertEquals(dpEnum.freq(), positions[i].length);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java Mon Aug 13 13:52:46 2012
@@ -69,7 +69,7 @@ public class TestTermVectorsWriter exten
// Token "" occurred once
assertEquals(1, termsEnum.totalTermFreq());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
assertEquals(8, dpEnum.startOffset());
@@ -78,7 +78,7 @@ public class TestTermVectorsWriter exten
// Token "abcd" occurred three times
assertEquals(new BytesRef("abcd"), termsEnum.next());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertEquals(3, termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -118,7 +118,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(2, termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -153,7 +153,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(2, termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -192,7 +192,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(2, termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -228,7 +228,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(2, termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -265,7 +265,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
@@ -273,14 +273,14 @@ public class TestTermVectorsWriter exten
assertEquals(4, dpEnum.endOffset());
assertNotNull(termsEnum.next());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
assertEquals(11, dpEnum.startOffset());
assertEquals(17, dpEnum.endOffset());
assertNotNull(termsEnum.next());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
assertEquals(18, dpEnum.startOffset());
@@ -310,7 +310,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(1, (int) termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -319,7 +319,7 @@ public class TestTermVectorsWriter exten
assertEquals(7, dpEnum.endOffset());
assertNotNull(termsEnum.next());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
assertEquals(8, dpEnum.startOffset());
@@ -353,7 +353,7 @@ public class TestTermVectorsWriter exten
IndexReader r = DirectoryReader.open(dir);
TermsEnum termsEnum = r.getTermVectors(0).terms("field").iterator(null);
assertNotNull(termsEnum.next());
- DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null, true);
+ DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
assertEquals(1, (int) termsEnum.totalTermFreq());
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
@@ -362,7 +362,7 @@ public class TestTermVectorsWriter exten
assertEquals(4, dpEnum.endOffset());
assertNotNull(termsEnum.next());
- dpEnum = termsEnum.docsAndPositions(null, dpEnum, true);
+ dpEnum = termsEnum.docsAndPositions(null, dpEnum);
assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
dpEnum.nextPosition();
assertEquals(6, dpEnum.startOffset());
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java Mon Aug 13 13:52:46 2012
@@ -124,7 +124,7 @@ public class TestTermdocPerf extends Luc
final Random random = new Random(random().nextLong());
for (int i=0; i<iter; i++) {
tenum.seekCeil(new BytesRef("val"));
- tdocs = _TestUtil.docs(random, tenum, MultiFields.getLiveDocs(reader), tdocs, false);
+ tdocs = _TestUtil.docs(random, tenum, MultiFields.getLiveDocs(reader), tdocs, 0);
while (tdocs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
ret += tdocs.docID();
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java Mon Aug 13 13:52:46 2012
@@ -37,7 +37,7 @@ import org.apache.lucene.util.automaton.
import org.apache.lucene.util.automaton.CompiledAutomaton;
import org.apache.lucene.util.automaton.RegExp;
-@SuppressCodecs({ "SimpleText", "Memory" })
+@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
public class TestTermsEnum extends LuceneTestCase {
public void test() throws Exception {
@@ -332,7 +332,7 @@ public class TestTermsEnum extends Lucen
}
assertEquals(expected, actual);
assertEquals(1, te.docFreq());
- docsEnum = _TestUtil.docs(random(), te, null, docsEnum, false);
+ docsEnum = _TestUtil.docs(random(), te, null, docsEnum, 0);
final int docID = docsEnum.nextDoc();
assertTrue(docID != DocIdSetIterator.NO_MORE_DOCS);
assertEquals(docIDToID[docID], termToID.get(expected).intValue());
@@ -747,25 +747,25 @@ public class TestTermsEnum extends Lucen
CompiledAutomaton ca = new CompiledAutomaton(automaton, false, false);
TermsEnum te = terms.intersect(ca, null);
assertEquals("aaa", te.next().utf8ToString());
- assertEquals(0, te.docs(null, null, false).nextDoc());
+ assertEquals(0, te.docs(null, null, 0).nextDoc());
assertEquals("bbb", te.next().utf8ToString());
- assertEquals(1, te.docs(null, null, false).nextDoc());
+ assertEquals(1, te.docs(null, null, 0).nextDoc());
assertEquals("ccc", te.next().utf8ToString());
- assertEquals(2, te.docs(null, null, false).nextDoc());
+ assertEquals(2, te.docs(null, null, 0).nextDoc());
assertNull(te.next());
te = terms.intersect(ca, new BytesRef("abc"));
assertEquals("bbb", te.next().utf8ToString());
- assertEquals(1, te.docs(null, null, false).nextDoc());
+ assertEquals(1, te.docs(null, null, 0).nextDoc());
assertEquals("ccc", te.next().utf8ToString());
- assertEquals(2, te.docs(null, null, false).nextDoc());
+ assertEquals(2, te.docs(null, null, 0).nextDoc());
assertNull(te.next());
te = terms.intersect(ca, new BytesRef("aaa"));
assertEquals("bbb", te.next().utf8ToString());
- assertEquals(1, te.docs(null, null, false).nextDoc());
+ assertEquals(1, te.docs(null, null, 0).nextDoc());
assertEquals("ccc", te.next().utf8ToString());
- assertEquals(2, te.docs(null, null, false).nextDoc());
+ assertEquals(2, te.docs(null, null, 0).nextDoc());
assertNull(te.next());
r.close();
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java Mon Aug 13 13:52:46 2012
@@ -122,6 +122,21 @@ public final class FieldCacheRewriteMeth
public long size() {
return -1;
}
+
+ @Override
+ public boolean hasOffsets() {
+ return false;
+ }
+
+ @Override
+ public boolean hasPositions() {
+ return false;
+ }
+
+ @Override
+ public boolean hasPayloads() {
+ return false;
+ }
});
assert termsEnum != null;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java Mon Aug 13 13:52:46 2012
@@ -350,7 +350,7 @@ final class JustCompileSearch {
@Override
public Scorer scorer(AtomicReaderContext context, boolean scoreDocsInOrder,
- boolean topScorer, FeatureFlags flags, Bits acceptDocs) {
+ boolean topScorer, PostingFeatures flags, Bits acceptDocs) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java Mon Aug 13 13:52:46 2012
@@ -65,7 +65,9 @@ public class TestBoolean2 extends Lucene
}
writer.close();
littleReader = DirectoryReader.open(directory);
- searcher = new IndexSearcher(littleReader);
+ searcher = newSearcher(littleReader);
+ // this is intentionally using the baseline sim, because it compares against bigSearcher (which uses a random one)
+ searcher.setSimilarity(new DefaultSimilarity());
// Make big index
dir2 = new MockDirectoryWrapper(random(), new RAMDirectory(directory, IOContext.DEFAULT));
@@ -261,7 +263,7 @@ public class TestBoolean2 extends Lucene
try {
// increase number of iterations for more complete testing
- int num = atLeast(10);
+ int num = atLeast(20);
for (int i=0; i<num; i++) {
int level = random().nextInt(3);
q1 = randBoolQuery(new Random(random().nextLong()), random().nextBoolean(), level, field, vals, null);
@@ -270,7 +272,14 @@ public class TestBoolean2 extends Lucene
// match up.
Sort sort = Sort.INDEXORDER;
- QueryUtils.check(random(), q1,searcher);
+ QueryUtils.check(random(), q1,searcher); // baseline sim
+ try {
+ // a little hackish, QueryUtils.check is too costly to do on bigSearcher in this loop.
+ searcher.setSimilarity(bigSearcher.getSimilarity()); // random sim
+ QueryUtils.check(random(), q1, searcher);
+ } finally {
+ searcher.setSimilarity(new DefaultSimilarity()); // restore
+ }
TopFieldCollector collector = TopFieldCollector.create(sort, 1000,
false, true, true, true);
@@ -321,6 +330,14 @@ public class TestBoolean2 extends Lucene
Query q;
if (qType < 3) {
q = new TermQuery(new Term(field, vals[rnd.nextInt(vals.length)]));
+ } else if (qType < 4) {
+ Term t1 = new Term(field, vals[rnd.nextInt(vals.length)]);
+ Term t2 = new Term(field, vals[rnd.nextInt(vals.length)]);
+ PhraseQuery pq = new PhraseQuery();
+ pq.add(t1);
+ pq.add(t2);
+ pq.setSlop(10); // increase possibility of matching
+ q = pq;
} else if (qType < 7) {
q = new WildcardQuery(new Term(field, "w*"));
} else {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java Mon Aug 13 13:52:46 2012
@@ -23,6 +23,8 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
+import org.apache.lucene.search.similarities.DefaultSimilarity;
+import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -297,8 +299,8 @@ public class TestBooleanMinShouldMatch e
}
public void testRandomQueries() throws Exception {
- String field="data";
- String[] vals = {"1","2","3","4","5","6","A","Z","B","Y","Z","X","foo"};
+ final String field="data";
+ final String[] vals = {"1","2","3","4","5","6","A","Z","B","Y","Z","X","foo"};
int maxLev=4;
// callback object to set a random setMinimumNumberShouldMatch
@@ -310,13 +312,18 @@ public class TestBooleanMinShouldMatch e
if (c[i].getOccur() == BooleanClause.Occur.SHOULD) opt++;
}
q.setMinimumNumberShouldMatch(random().nextInt(opt+2));
+ if (random().nextBoolean()) {
+ // also add a random negation
+ Term randomTerm = new Term(field, vals[random().nextInt(vals.length)]);
+ q.add(new TermQuery(randomTerm), BooleanClause.Occur.MUST_NOT);
+ }
}
};
// increase number of iterations for more complete testing
- int num = atLeast(10);
+ int num = atLeast(20);
for (int i=0; i<num; i++) {
int lev = random().nextInt(maxLev);
final long seed = random().nextLong();
@@ -336,44 +343,90 @@ public class TestBooleanMinShouldMatch e
QueryUtils.check(random(), q1,s);
QueryUtils.check(random(), q2,s);
}
- // The constrained query
- // should be a superset to the unconstrained query.
- if (top2.totalHits > top1.totalHits) {
- fail("Constrained results not a subset:\n"
- + CheckHits.topdocsString(top1,0,0)
- + CheckHits.topdocsString(top2,0,0)
- + "for query:" + q2.toString());
- }
-
- for (int hit=0; hit<top2.totalHits; hit++) {
- int id = top2.scoreDocs[hit].doc;
- float score = top2.scoreDocs[hit].score;
- boolean found=false;
- // find this doc in other hits
- for (int other=0; other<top1.totalHits; other++) {
- if (top1.scoreDocs[other].doc == id) {
- found=true;
- float otherScore = top1.scoreDocs[other].score;
- // check if scores match
- assertEquals("Doc " + id + " scores don't match\n"
- + CheckHits.topdocsString(top1,0,0)
- + CheckHits.topdocsString(top2,0,0)
- + "for query:" + q2.toString(),
- score, otherScore, CheckHits.explainToleranceDelta(score, otherScore));
- }
- }
+ assertSubsetOfSameScores(q2, top1, top2);
+ }
+ // System.out.println("Total hits:"+tot);
+ }
+
+ private void assertSubsetOfSameScores(Query q, TopDocs top1, TopDocs top2) {
+ // The constrained query
+ // should be a subset to the unconstrained query.
+ if (top2.totalHits > top1.totalHits) {
+ fail("Constrained results not a subset:\n"
+ + CheckHits.topdocsString(top1,0,0)
+ + CheckHits.topdocsString(top2,0,0)
+ + "for query:" + q.toString());
+ }
- // check if subset
- if (!found) fail("Doc " + id + " not found\n"
+ for (int hit=0; hit<top2.totalHits; hit++) {
+ int id = top2.scoreDocs[hit].doc;
+ float score = top2.scoreDocs[hit].score;
+ boolean found=false;
+ // find this doc in other hits
+ for (int other=0; other<top1.totalHits; other++) {
+ if (top1.scoreDocs[other].doc == id) {
+ found=true;
+ float otherScore = top1.scoreDocs[other].score;
+ // check if scores match
+ assertEquals("Doc " + id + " scores don't match\n"
+ CheckHits.topdocsString(top1,0,0)
+ CheckHits.topdocsString(top2,0,0)
- + "for query:" + q2.toString());
+ + "for query:" + q.toString(),
+ score, otherScore, CheckHits.explainToleranceDelta(score, otherScore));
+ }
}
+
+ // check if subset
+ if (!found) fail("Doc " + id + " not found\n"
+ + CheckHits.topdocsString(top1,0,0)
+ + CheckHits.topdocsString(top2,0,0)
+ + "for query:" + q.toString());
}
- // System.out.println("Total hits:"+tot);
}
-
+ public void testRewriteCoord1() throws Exception {
+ final Similarity oldSimilarity = s.getSimilarity();
+ try {
+ s.setSimilarity(new DefaultSimilarity() {
+ @Override
+ public float coord(int overlap, int maxOverlap) {
+ return overlap / ((float)maxOverlap + 1);
+ }
+ });
+ BooleanQuery q1 = new BooleanQuery();
+ q1.add(new TermQuery(new Term("data", "1")), BooleanClause.Occur.SHOULD);
+ BooleanQuery q2 = new BooleanQuery();
+ q2.add(new TermQuery(new Term("data", "1")), BooleanClause.Occur.SHOULD);
+ q2.setMinimumNumberShouldMatch(1);
+ TopDocs top1 = s.search(q1,null,100);
+ TopDocs top2 = s.search(q2,null,100);
+ assertSubsetOfSameScores(q2, top1, top2);
+ } finally {
+ s.setSimilarity(oldSimilarity);
+ }
+ }
+
+ public void testRewriteNegate() throws Exception {
+ final Similarity oldSimilarity = s.getSimilarity();
+ try {
+ s.setSimilarity(new DefaultSimilarity() {
+ @Override
+ public float coord(int overlap, int maxOverlap) {
+ return overlap / ((float)maxOverlap + 1);
+ }
+ });
+ BooleanQuery q1 = new BooleanQuery();
+ q1.add(new TermQuery(new Term("data", "1")), BooleanClause.Occur.SHOULD);
+ BooleanQuery q2 = new BooleanQuery();
+ q2.add(new TermQuery(new Term("data", "1")), BooleanClause.Occur.SHOULD);
+ q2.add(new TermQuery(new Term("data", "Z")), BooleanClause.Occur.MUST_NOT);
+ TopDocs top1 = s.search(q1,null,100);
+ TopDocs top2 = s.search(q2,null,100);
+ assertSubsetOfSameScores(q2, top1, top2);
+ } finally {
+ s.setSimilarity(oldSimilarity);
+ }
+ }
protected void printHits(String test, ScoreDoc[] h, IndexSearcher searcher) throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java Mon Aug 13 13:52:46 2012
@@ -34,7 +34,7 @@ import org.apache.lucene.index.MultiRead
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.Weight.FeatureFlags;
+import org.apache.lucene.search.Weight.PostingFeatures;
import org.apache.lucene.search.positions.IntervalFilterQuery;
import org.apache.lucene.search.positions.RangeIntervalIterator;
import org.apache.lucene.search.positions.WithinIntervalIterator;
@@ -234,7 +234,7 @@ public class TestBooleanQuery extends Lu
Weight weight = s.createNormalizedWeight(q);
Scorer scorer = weight.scorer(s.leafContexts.get(0),
- true, false, FeatureFlags.DOCS, null);
+ true, false, PostingFeatures.DOCS_AND_FREQS, null);
// First pass: just use .nextDoc() to gather all hits
final List<ScoreDoc> hits = new ArrayList<ScoreDoc>();
@@ -252,7 +252,7 @@ public class TestBooleanQuery extends Lu
weight = s.createNormalizedWeight(q);
scorer = weight.scorer(s.leafContexts.get(0),
- true, false, FeatureFlags.DOCS, null);
+ true, false, PostingFeatures.DOCS_AND_FREQS, null);
if (VERBOSE) {
System.out.println(" iter2=" + iter2);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Mon Aug 13 13:52:46 2012
@@ -30,7 +30,7 @@ import org.apache.lucene.index.SlowCompo
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.Weight.FeatureFlags;
+import org.apache.lucene.search.Weight.PostingFeatures;
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
@@ -175,7 +175,7 @@ public class TestDisjunctionMaxQuery ext
assertTrue(s.getTopReaderContext() instanceof AtomicReaderContext);
final Weight dw = s.createNormalizedWeight(dq);
AtomicReaderContext context = (AtomicReaderContext)s.getTopReaderContext();
- final Scorer ds = dw.scorer(context, true, false, FeatureFlags.DOCS, context.reader().getLiveDocs());
+ final Scorer ds = dw.scorer(context, true, false, PostingFeatures.DOCS_AND_FREQS, context.reader().getLiveDocs());
final boolean skipOk = ds.advance(3) != DocIdSetIterator.NO_MORE_DOCS;
if (skipOk) {
fail("firsttime skipTo found a match? ... "
@@ -191,7 +191,7 @@ public class TestDisjunctionMaxQuery ext
QueryUtils.check(random(), dq, s);
final Weight dw = s.createNormalizedWeight(dq);
AtomicReaderContext context = (AtomicReaderContext)s.getTopReaderContext();
- final Scorer ds = dw.scorer(context, true, false, FeatureFlags.DOCS, context.reader().getLiveDocs());
+ final Scorer ds = dw.scorer(context, true, false, PostingFeatures.DOCS_AND_FREQS, context.reader().getLiveDocs());
assertTrue("firsttime skipTo found no match",
ds.advance(3) != DocIdSetIterator.NO_MORE_DOCS);
assertEquals("found wrong docid", "d4", r.document(ds.docID()).get("id"));