You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2011/12/09 10:13:45 UTC
svn commit: r1212292 [3/6] - in /lucene/dev/trunk: ./ lucene/
lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/
lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/
lucene/contrib/highlighter/src/test/org/...
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java Fri Dec 9 09:13:39 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.index.codecs.s
import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.DocValuesFormat;
import org.apache.lucene.index.codecs.FieldInfosFormat;
+import org.apache.lucene.index.codecs.NormsFormat;
import org.apache.lucene.index.codecs.PostingsFormat;
import org.apache.lucene.index.codecs.SegmentInfosFormat;
import org.apache.lucene.index.codecs.StoredFieldsFormat;
@@ -40,6 +41,8 @@ public final class SimpleTextCodec exten
private final TermVectorsFormat vectorsFormat = new SimpleTextTermVectorsFormat();
// TODO: need a plain-text impl
private final DocValuesFormat docValues = new Lucene40DocValuesFormat();
+ // TODO: need a plain-text impl (using the above)
+ private final NormsFormat normsFormat = new SimpleTextNormsFormat();
public SimpleTextCodec() {
super("SimpleText");
@@ -74,4 +77,9 @@ public final class SimpleTextCodec exten
public SegmentInfosFormat segmentInfosFormat() {
return segmentInfos;
}
+
+ @Override
+ public NormsFormat normsFormat() {
+ return normsFormat;
+ }
}
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/SearcherManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/SearcherManager.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/SearcherManager.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/SearcherManager.java Fri Dec 9 09:13:39 2011
@@ -128,7 +128,7 @@ public final class SearcherManager {
ExecutorService es) throws IOException {
this.es = es;
this.warmer = warmer;
- currentSearcher = new IndexSearcher(IndexReader.open(dir, true), es);
+ currentSearcher = new IndexSearcher(IndexReader.open(dir), es);
}
/**
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java Fri Dec 9 09:13:39 2011
@@ -147,7 +147,7 @@ public abstract class CollationTestBase
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(farsiIndex, true);
+ IndexReader reader = IndexReader.open(farsiIndex);
IndexSearcher search = newSearcher(reader);
// Unicode order would include U+0633 in [ U+062F - U+0698 ], but Farsi
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java Fri Dec 9 09:13:39 2011
@@ -385,7 +385,7 @@ public class RandomIndexWriter implement
w.commit();
switchDoDocValues();
if (r.nextBoolean()) {
- return IndexReader.open(w.getDirectory(), new KeepOnlyLastCommitDeletionPolicy(), r.nextBoolean(), _TestUtil.nextInt(r, 1, 10));
+ return IndexReader.open(w.getDirectory(), _TestUtil.nextInt(r, 1, 10));
} else {
return w.getReader(applyDeletions);
}
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java Fri Dec 9 09:13:39 2011
@@ -200,7 +200,7 @@ public class QueryUtils {
Assert.assertEquals("writer has non-deleted docs",
0, w.numDocs());
w.close();
- IndexReader r = IndexReader.open(d, true);
+ IndexReader r = IndexReader.open(d);
Assert.assertEquals("reader has wrong number of deleted docs",
numDeletedDocs, r.numDeletedDocs());
return r;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java Fri Dec 9 09:13:39 2011
@@ -71,13 +71,6 @@ public class TestBinaryDocument extends
writer.close();
reader.close();
-
- reader = IndexReader.open(dir, false);
- /** delete the document from index */
- reader.deleteDocument(0);
- assertEquals(0, reader.numDocs());
-
- reader.close();
dir.close();
}
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=1212292&r1=1212291&r2=1212292&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 Fri Dec 9 09:13:39 2011
@@ -34,6 +34,7 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.DocValuesFormat;
import org.apache.lucene.index.codecs.FieldInfosFormat;
+import org.apache.lucene.index.codecs.NormsFormat;
import org.apache.lucene.index.codecs.StoredFieldsFormat;
import org.apache.lucene.index.codecs.PostingsFormat;
import org.apache.lucene.index.codecs.SegmentInfosFormat;
@@ -41,6 +42,7 @@ import org.apache.lucene.index.codecs.Te
import org.apache.lucene.index.codecs.lucene40.Lucene40Codec;
import org.apache.lucene.index.codecs.lucene40.Lucene40FieldInfosFormat;
import org.apache.lucene.index.codecs.lucene40.Lucene40DocValuesFormat;
+import org.apache.lucene.index.codecs.lucene40.Lucene40NormsFormat;
import org.apache.lucene.index.codecs.lucene40.Lucene40SegmentInfosFormat;
import org.apache.lucene.index.codecs.lucene40.Lucene40StoredFieldsFormat;
import org.apache.lucene.index.codecs.lucene40.Lucene40TermVectorsFormat;
@@ -421,16 +423,20 @@ public class TestAddIndexes extends Luce
// auxiliary directory
Directory aux = newDirectory();
- setUpDirs(dir, aux);
+ setUpDirs(dir, aux, true);
- IndexReader reader = IndexReader.open(aux, false);
+ IndexWriterConfig dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ IndexWriter writer = new IndexWriter(aux, dontMergeConfig);
for (int i = 0; i < 20; i++) {
- reader.deleteDocument(i);
+ writer.deleteDocuments(new Term("id", "" + i));
}
+ writer.close();
+ IndexReader reader = IndexReader.open(aux);
assertEquals(10, reader.numDocs());
reader.close();
- IndexWriter writer = newWriter(
+ writer = newWriter(
dir,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
setOpenMode(OpenMode.APPEND).
@@ -454,7 +460,7 @@ public class TestAddIndexes extends Luce
Directory aux = newDirectory();
Directory aux2 = newDirectory();
- setUpDirs(dir, aux);
+ setUpDirs(dir, aux, true);
IndexWriter writer = newWriter(
aux2,
@@ -468,17 +474,25 @@ public class TestAddIndexes extends Luce
assertEquals(3, writer.getSegmentCount());
writer.close();
- IndexReader reader = IndexReader.open(aux, false);
+ IndexWriterConfig dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(aux, dontMergeConfig);
for (int i = 0; i < 27; i++) {
- reader.deleteDocument(i);
+ writer.deleteDocuments(new Term("id", "" + i));
}
+ writer.close();
+ IndexReader reader = IndexReader.open(aux);
assertEquals(3, reader.numDocs());
reader.close();
- reader = IndexReader.open(aux2, false);
+ dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(aux2, dontMergeConfig);
for (int i = 0; i < 8; i++) {
- reader.deleteDocument(i);
+ writer.deleteDocuments(new Term("id", "" + i));
}
+ writer.close();
+ reader = IndexReader.open(aux2);
assertEquals(22, reader.numDocs());
reader.close();
@@ -523,7 +537,7 @@ public class TestAddIndexes extends Luce
}
private void verifyNumDocs(Directory dir, int numDocs) throws IOException {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(numDocs, reader.maxDoc());
assertEquals(numDocs, reader.numDocs());
reader.close();
@@ -531,7 +545,7 @@ public class TestAddIndexes extends Luce
private void verifyTermDocs(Directory dir, Term term, int numDocs)
throws IOException {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
DocsEnum docsEnum = _TestUtil.docs(random, reader, term.field, term.bytes, null, null, false);
int count = 0;
while (docsEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS)
@@ -541,11 +555,19 @@ public class TestAddIndexes extends Luce
}
private void setUpDirs(Directory dir, Directory aux) throws IOException {
+ setUpDirs(dir, aux, false);
+ }
+
+ private void setUpDirs(Directory dir, Directory aux, boolean withID) throws IOException {
IndexWriter writer = null;
writer = newWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(1000));
// add 1000 documents in 1 segment
- addDocs(writer, 1000);
+ if (withID) {
+ addDocsWithID(writer, 1000, 0);
+ } else {
+ addDocs(writer, 1000);
+ }
assertEquals(1000, writer.maxDoc());
assertEquals(1, writer.getSegmentCount());
writer.close();
@@ -559,7 +581,11 @@ public class TestAddIndexes extends Luce
);
// add 30 documents in 3 segments
for (int i = 0; i < 3; i++) {
- addDocs(writer, 10);
+ if (withID) {
+ addDocsWithID(writer, 10, 10*i);
+ } else {
+ addDocs(writer, 10);
+ }
writer.close();
writer = newWriter(
aux,
@@ -657,7 +683,7 @@ public class TestAddIndexes extends Luce
readers = new IndexReader[NUM_COPY];
for(int i=0;i<NUM_COPY;i++)
- readers[i] = IndexReader.open(dir, true);
+ readers[i] = IndexReader.open(dir);
}
void launchThreads(final int numIter) {
@@ -783,7 +809,7 @@ public class TestAddIndexes extends Luce
assertTrue("found unexpected failures: " + c.failures, c.failures.isEmpty());
- IndexReader reader = IndexReader.open(c.dir2, true);
+ IndexReader reader = IndexReader.open(c.dir2);
assertEquals(expectedNumDocs, reader.numDocs());
reader.close();
@@ -970,11 +996,12 @@ public class TestAddIndexes extends Luce
}
- private void addDocs3(IndexWriter writer, int numDocs) throws IOException {
+ // just like addDocs but with ID, starting from docStart
+ private void addDocsWithID(IndexWriter writer, int numDocs, int docStart) throws IOException {
for (int i = 0; i < numDocs; i++) {
Document doc = new Document();
doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
- doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+ doc.add(newField("id", "" + (docStart + i), TextField.TYPE_STORED));
writer.addDocument(doc);
}
}
@@ -991,7 +1018,7 @@ public class TestAddIndexes extends Luce
writer = newWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE).setCodec(codec));
// add 100 documents
- addDocs3(writer, 100);
+ addDocsWithID(writer, 100, 0);
assertEquals(100, writer.maxDoc());
writer.commit();
writer.close();
@@ -1122,6 +1149,11 @@ public class TestAddIndexes extends Luce
public SegmentInfosFormat segmentInfosFormat() {
return new Lucene40SegmentInfosFormat();
}
+
+ @Override
+ public NormsFormat normsFormat() {
+ return new Lucene40NormsFormat();
+ }
}
/*
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java Fri Dec 9 09:13:39 2011
@@ -112,7 +112,7 @@ public class TestAtomicUpdate extends Lu
@Override
public void doWork() throws Throwable {
- IndexReader r = IndexReader.open(directory, true);
+ IndexReader r = IndexReader.open(directory);
assertEquals(100, r.numDocs());
r.close();
}
@@ -144,7 +144,7 @@ public class TestAtomicUpdate extends Lu
}
writer.commit();
- IndexReader r = IndexReader.open(directory, true);
+ IndexReader r = IndexReader.open(directory);
assertEquals(100, r.numDocs());
r.close();
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=1212292&r1=1212291&r2=1212292&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 Fri Dec 9 09:13:39 2011
@@ -43,7 +43,6 @@ import org.apache.lucene.search.IndexSea
import org.apache.lucene.search.NumericRangeQuery;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.store.CompoundFileDirectory;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
@@ -378,28 +377,6 @@ public class TestBackwardsCompatibility
searcher.close();
reader.close();
- // make sure we can do delete & setNorm against this segment:
- reader = IndexReader.open(dir, false);
- searcher = newSearcher(reader);
- Term searchTerm = new Term("id", "6");
- int delCount = reader.deleteDocuments(searchTerm);
- assertEquals("wrong delete count", 1, delCount);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(searcher.search(new TermQuery(new Term("id", "22")), 10).scoreDocs[0].doc, "content", sim.encodeNormValue(2.0f));
- reader.close();
- searcher.close();
-
- // make sure they "took":
- reader = IndexReader.open(dir, true);
- searcher = new IndexSearcher(reader);
- hits = searcher.search(new TermQuery(new Term("content", "aaa")), null, 1000).scoreDocs;
- assertEquals("wrong number of hits", 43, hits.length);
- d = searcher.doc(hits[0].doc);
- assertEquals("wrong first document", "22", d.get("id"));
- doTestHits(hits, 43, searcher.getIndexReader());
- searcher.close();
- reader.close();
-
// fully merge
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.APPEND));
writer.forceMerge(1);
@@ -408,10 +385,10 @@ public class TestBackwardsCompatibility
reader = IndexReader.open(dir);
searcher = new IndexSearcher(reader);
hits = searcher.search(new TermQuery(new Term("content", "aaa")), null, 1000).scoreDocs;
- assertEquals("wrong number of hits", 43, hits.length);
+ assertEquals("wrong number of hits", 44, hits.length);
d = searcher.doc(hits[0].doc);
- doTestHits(hits, 43, searcher.getIndexReader());
- assertEquals("wrong first document", "22", d.get("id"));
+ doTestHits(hits, 44, searcher.getIndexReader());
+ assertEquals("wrong first document", "21", d.get("id"));
searcher.close();
reader.close();
@@ -432,26 +409,6 @@ public class TestBackwardsCompatibility
searcher.close();
reader.close();
- // make sure we can do a delete & setNorm against this segment:
- reader = IndexReader.open(dir, false);
- Term searchTerm = new Term("id", "6");
- int delCount = reader.deleteDocuments(searchTerm);
- assertEquals("wrong delete count", 1, delCount);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(22, "content", sim.encodeNormValue(2.0f));
- reader.close();
-
- // make sure they "took":
- reader = IndexReader.open(dir);
- searcher = new IndexSearcher(reader);
- hits = searcher.search(new TermQuery(new Term("content", "aaa")), null, 1000).scoreDocs;
- assertEquals("wrong number of hits", 33, hits.length);
- d = searcher.doc(hits[0].doc);
- assertEquals("wrong first document", "22", d.get("id"));
- doTestHits(hits, 33, searcher.getIndexReader());
- searcher.close();
- reader.close();
-
// fully merge
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.APPEND));
writer.forceMerge(1);
@@ -460,10 +417,8 @@ public class TestBackwardsCompatibility
reader = IndexReader.open(dir);
searcher = new IndexSearcher(reader);
hits = searcher.search(new TermQuery(new Term("content", "aaa")), null, 1000).scoreDocs;
- assertEquals("wrong number of hits", 33, hits.length);
- d = searcher.doc(hits[0].doc);
- assertEquals("wrong first document", "22", d.get("id"));
- doTestHits(hits, 33, searcher.getIndexReader());
+ assertEquals("wrong number of hits", 34, hits.length);
+ doTestHits(hits, 34, searcher.getIndexReader());
searcher.close();
reader.close();
@@ -504,16 +459,12 @@ public class TestBackwardsCompatibility
addNoProxDoc(writer);
writer.close();
- // Delete one doc so we get a .del file:
- IndexReader reader = IndexReader.open(dir, false);
+ writer = new IndexWriter(dir,
+ conf.setMergePolicy(doCFS ? NoMergePolicy.COMPOUND_FILES : NoMergePolicy.NO_COMPOUND_FILES)
+ );
Term searchTerm = new Term("id", "7");
- int delCount = reader.deleteDocuments(searchTerm);
- assertEquals("didn't delete the right number of documents", 1, delCount);
-
- // Set one norm so we get a .s0 file:
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(21, "content", sim.encodeNormValue(1.5f));
- reader.close();
+ writer.deleteDocuments(searchTerm);
+ writer.close();
}
dir.close();
@@ -549,39 +500,18 @@ public class TestBackwardsCompatibility
writer.close();
// Delete one doc so we get a .del file:
- IndexReader reader = IndexReader.open(dir, false);
+ writer = new IndexWriter(
+ dir,
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES)
+ );
Term searchTerm = new Term("id", "7");
- int delCount = reader.deleteDocuments(searchTerm);
- assertEquals("didn't delete the right number of documents", 1, delCount);
-
- // Set one norm so we get a .s0 file:
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(21, "content", sim.encodeNormValue(1.5f));
- reader.close();
-
- // The numbering of fields can vary depending on which
- // JRE is in use. On some JREs we see content bound to
- // field 0; on others, field 1. So, here we have to
- // figure out which field number corresponds to
- // "content", and then set our expected file names below
- // accordingly:
- CompoundFileDirectory cfsReader = new CompoundFileDirectory(dir, "_0.cfs", newIOContext(random), false);
- FieldInfosReader infosReader = Codec.getDefault().fieldInfosFormat().getFieldInfosReader();
- FieldInfos fieldInfos = infosReader.read(cfsReader, "_0", IOContext.READONCE);
- int contentFieldIndex = -1;
- for (FieldInfo fi : fieldInfos) {
- if (fi.name.equals("content")) {
- contentFieldIndex = fi.number;
- break;
- }
- }
- cfsReader.close();
- assertTrue("could not locate the 'content' field number in the _2.cfs segment", contentFieldIndex != -1);
+ writer.deleteDocuments(searchTerm);
+ writer.close();
// Now verify file names:
String[] expected = new String[] {"_0.cfs", "_0.cfe",
"_0_1.del",
- "_0_1.s" + contentFieldIndex,
"segments_2",
"segments.gen"};
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java Fri Dec 9 09:13:39 2011
@@ -36,20 +36,19 @@ public class TestCheckIndex extends Luce
public void testDeletedDocs() throws IOException {
Directory dir = newDirectory();
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMaxBufferedDocs(2));
- Document doc = new Document();
- FieldType customType = new FieldType(TextField.TYPE_STORED);
- customType.setStoreTermVectors(true);
- customType.setStoreTermVectorPositions(true);
- customType.setStoreTermVectorOffsets(true);
- doc.add(newField("field", "aaa", customType));
for(int i=0;i<19;i++) {
+ Document doc = new Document();
+ FieldType customType = new FieldType(TextField.TYPE_STORED);
+ customType.setStoreTermVectors(true);
+ customType.setStoreTermVectorPositions(true);
+ customType.setStoreTermVectorOffsets(true);
+ doc.add(newField("field", "aaa"+i, customType));
writer.addDocument(doc);
}
writer.forceMerge(1);
+ writer.commit();
+ writer.deleteDocuments(new Term("field","aaa5"));
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocument(5);
- reader.close();
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
CheckIndex checker = new CheckIndex(dir);
@@ -73,7 +72,7 @@ public class TestCheckIndex extends Luce
assertNotNull(seg.termIndexStatus);
assertNull(seg.termIndexStatus.error);
- assertEquals(1, seg.termIndexStatus.termCount);
+ assertEquals(19, seg.termIndexStatus.termCount);
assertEquals(19, seg.termIndexStatus.totFreq);
assertEquals(18, seg.termIndexStatus.totPos);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java Fri Dec 9 09:13:39 2011
@@ -113,7 +113,7 @@ public class TestConcurrentMergeSchedule
}
writer.close();
- IndexReader reader = IndexReader.open(directory, true);
+ IndexReader reader = IndexReader.open(directory);
assertEquals(200+extraCount, reader.numDocs());
reader.close();
directory.close();
@@ -158,7 +158,7 @@ public class TestConcurrentMergeSchedule
}
writer.close();
- IndexReader reader = IndexReader.open(directory, true);
+ IndexReader reader = IndexReader.open(directory);
// Verify that we did not lose any deletes...
assertEquals(450, reader.numDocs());
reader.close();
@@ -230,7 +230,7 @@ public class TestConcurrentMergeSchedule
writer.close(false);
- IndexReader reader = IndexReader.open(directory, true);
+ IndexReader reader = IndexReader.open(directory);
assertEquals((1+iter)*182, reader.numDocs());
reader.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrash.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrash.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrash.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrash.java Fri Dec 9 09:13:39 2011
@@ -68,7 +68,7 @@ public class TestCrash extends LuceneTes
IndexWriter writer = initIndex(random, true);
MockDirectoryWrapper dir = (MockDirectoryWrapper) writer.getDirectory();
crash(writer);
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertTrue(reader.numDocs() < 157);
reader.close();
dir.close();
@@ -85,7 +85,7 @@ public class TestCrash extends LuceneTes
writer = initIndex(random, dir, false);
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertTrue(reader.numDocs() < 314);
reader.close();
dir.close();
@@ -108,7 +108,7 @@ public class TestCrash extends LuceneTes
dir.fileLength(l[i]) + " bytes");
*/
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertTrue(reader.numDocs() >= 157);
reader.close();
dir.close();
@@ -129,7 +129,7 @@ public class TestCrash extends LuceneTes
System.out.println("file " + i + " = " + l[i] + " " + dir.fileLength(l[i]) + " bytes");
*/
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(157, reader.numDocs());
reader.close();
dir.close();
@@ -150,57 +150,9 @@ public class TestCrash extends LuceneTes
for(int i=0;i<l.length;i++)
System.out.println("file " + i + " = " + l[i] + " " + dir.fileLength(l[i]) + " bytes");
*/
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(157, reader.numDocs());
reader.close();
dir.close();
}
-
- public void testCrashReaderDeletes() throws IOException {
-
- IndexWriter writer = initIndex(random, false);
- MockDirectoryWrapper dir = (MockDirectoryWrapper) writer.getDirectory();
-
- writer.close(false);
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocument(3);
-
- dir.crash();
-
- /*
- String[] l = dir.list();
- Arrays.sort(l);
- for(int i=0;i<l.length;i++)
- System.out.println("file " + i + " = " + l[i] + " " + dir.fileLength(l[i]) + " bytes");
- */
- reader = IndexReader.open(dir, false);
- assertEquals(157, reader.numDocs());
- reader.close();
- dir.clearCrash();
- dir.close();
- }
-
- public void testCrashReaderDeletesAfterClose() throws IOException {
-
- IndexWriter writer = initIndex(random, false);
- MockDirectoryWrapper dir = (MockDirectoryWrapper) writer.getDirectory();
-
- writer.close(false);
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocument(3);
- reader.close();
-
- dir.crash();
-
- /*
- String[] l = dir.list();
- Arrays.sort(l);
- for(int i=0;i<l.length;i++)
- System.out.println("file " + i + " = " + l[i] + " " + dir.fileLength(l[i]) + " bytes");
- */
- reader = IndexReader.open(dir, false);
- assertEquals(156, reader.numDocs());
- reader.close();
- dir.close();
- }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java Fri Dec 9 09:13:39 2011
@@ -25,6 +25,7 @@ import java.util.Collection;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.IndexSearcher;
@@ -73,7 +74,7 @@ public class TestDeletionPolicy extends
}
public void onCommit(List<? extends IndexCommit> commits) throws IOException {
IndexCommit lastCommit = commits.get(commits.size()-1);
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
assertEquals("lastCommit.segmentCount()=" + lastCommit.getSegmentCount() + " vs IndexReader.segmentCount=" + r.getSequentialSubReaders().length, r.getSequentialSubReaders().length, lastCommit.getSegmentCount());
r.close();
verifyCommitOrder(commits);
@@ -259,7 +260,7 @@ public class TestDeletionPolicy extends
while(gen > 0) {
try {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
reader.close();
fileName = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
"",
@@ -351,7 +352,7 @@ public class TestDeletionPolicy extends
// Make sure we can open a reader on each commit:
for (final IndexCommit commit : commits) {
- IndexReader r = IndexReader.open(commit, null, false);
+ IndexReader r = IndexReader.open(commit);
r.close();
}
@@ -360,7 +361,7 @@ public class TestDeletionPolicy extends
dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
while(gen > 0) {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
reader.close();
dir.deleteFile(IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS, "", gen));
gen--;
@@ -435,7 +436,7 @@ public class TestDeletionPolicy extends
// Should undo our rollback:
writer.rollback();
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
// Still merged, still 11 docs
assertEquals(1, r.getSequentialSubReaders().length);
assertEquals(11, r.numDocs());
@@ -450,7 +451,7 @@ public class TestDeletionPolicy extends
// Now 8 because we made another commit
assertEquals(7, IndexReader.listCommits(dir).size());
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
// Not fully merged because we rolled it back, and now only
// 10 docs
assertTrue(r.getSequentialSubReaders().length > 1);
@@ -462,7 +463,7 @@ public class TestDeletionPolicy extends
writer.forceMerge(1);
writer.close();
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
assertEquals(1, r.getSequentialSubReaders().length);
assertEquals(10, r.numDocs());
r.close();
@@ -474,7 +475,7 @@ public class TestDeletionPolicy extends
// Reader still sees fully merged index, because writer
// opened on the prior commit has not yet committed:
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
assertEquals(1, r.getSequentialSubReaders().length);
assertEquals(10, r.numDocs());
r.close();
@@ -482,7 +483,7 @@ public class TestDeletionPolicy extends
writer.close();
// Now reader sees not-fully-merged index:
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
assertTrue(r.getSequentialSubReaders().length > 1);
assertEquals(10, r.numDocs());
r.close();
@@ -535,7 +536,7 @@ public class TestDeletionPolicy extends
// Simplistic check: just verify the index is in fact
// readable:
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
reader.close();
dir.close();
@@ -583,7 +584,7 @@ public class TestDeletionPolicy extends
long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
for(int i=0;i<N+1;i++) {
try {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
reader.close();
if (i == N) {
fail("should have failed on commits prior to last " + N);
@@ -605,140 +606,6 @@ public class TestDeletionPolicy extends
/*
* Test a deletion policy that keeps last N commits
- * around, with reader doing deletes.
- */
- public void testKeepLastNDeletionPolicyWithReader() throws IOException {
- final int N = 10;
-
- for(int pass=0;pass<2;pass++) {
- if (VERBOSE) {
- System.out.println("TEST: pass=" + pass);
- }
-
- boolean useCompoundFile = (pass % 2) != 0;
-
- KeepLastNDeletionPolicy policy = new KeepLastNDeletionPolicy(N);
-
- Directory dir = newDirectory();
- IndexWriterConfig conf = newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setOpenMode(OpenMode.CREATE).setIndexDeletionPolicy(policy).setMergePolicy(newLogMergePolicy());
- MergePolicy mp = conf.getMergePolicy();
- if (mp instanceof LogMergePolicy) {
- ((LogMergePolicy) mp).setUseCompoundFile(useCompoundFile);
- }
- IndexWriter writer = new IndexWriter(dir, conf);
- writer.close();
- Term searchTerm = new Term("content", "aaa");
- Query query = new TermQuery(searchTerm);
-
- for(int i=0;i<N+1;i++) {
- if (VERBOSE) {
- System.out.println("\nTEST: write i=" + i);
- }
- conf = newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND).setIndexDeletionPolicy(policy).setMergePolicy(newLogMergePolicy());
- mp = conf.getMergePolicy();
- if (mp instanceof LogMergePolicy) {
- ((LogMergePolicy) mp).setUseCompoundFile(useCompoundFile);
- }
- writer = new IndexWriter(dir, conf);
- for(int j=0;j<17;j++) {
- addDoc(writer);
- }
- // this is a commit
- if (VERBOSE) {
- System.out.println("TEST: close writer");
- }
- writer.close();
- IndexReader reader = IndexReader.open(dir, policy, false);
- reader.deleteDocument(3*i+1);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(4*i+1, "content", sim.encodeNormValue(2.0F));
- IndexSearcher searcher = newSearcher(reader);
- ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
- assertEquals(16*(1+i), hits.length);
- // this is a commit
- if (VERBOSE) {
- System.out.println("TEST: close reader numOnCommit=" + policy.numOnCommit);
- }
- reader.close();
- searcher.close();
- }
- conf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND).setIndexDeletionPolicy(policy);
- mp = conf.getMergePolicy();
- if (mp instanceof LogMergePolicy) {
- ((LogMergePolicy) mp).setUseCompoundFile(useCompoundFile);
- }
- IndexReader r = IndexReader.open(dir);
- final boolean wasFullyMerged = r.getSequentialSubReaders().length == 1 && !r.hasDeletions();
- r.close();
- writer = new IndexWriter(dir, conf);
- writer.forceMerge(1);
- // this is a commit
- writer.close();
-
- assertEquals(2*(N+1)+1, policy.numOnInit);
- assertEquals(2*(N+2) - (wasFullyMerged ? 1:0), policy.numOnCommit);
-
- IndexReader rwReader = IndexReader.open(dir, false);
- IndexSearcher searcher = new IndexSearcher(rwReader);
- ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
- assertEquals(176, hits.length);
-
- // Simplistic check: just verify only the past N segments_N's still
- // exist, and, I can open a reader on each:
- long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
-
- dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
- int expectedCount = 176;
- searcher.close();
- rwReader.close();
- for(int i=0;i<N+1;i++) {
- if (VERBOSE) {
- System.out.println("TEST: i=" + i);
- }
- try {
- IndexReader reader = IndexReader.open(dir, true);
- if (VERBOSE) {
- System.out.println(" got reader=" + reader);
- }
-
- // Work backwards in commits on what the expected
- // count should be.
- searcher = newSearcher(reader);
- hits = searcher.search(query, null, 1000).scoreDocs;
- if (i > 1) {
- if (i % 2 == 0) {
- expectedCount += 1;
- } else {
- expectedCount -= 17;
- }
- }
- assertEquals("maxDoc=" + searcher.getIndexReader().maxDoc() + " numDocs=" + searcher.getIndexReader().numDocs(), expectedCount, hits.length);
- searcher.close();
- reader.close();
- if (i == N) {
- fail("should have failed on commits before last 5");
- }
- } catch (IOException e) {
- if (i != N) {
- throw e;
- }
- }
- if (i < N) {
- dir.deleteFile(IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS, "", gen));
- }
- gen--;
- }
- dir.close();
- }
- }
-
- /*
- * Test a deletion policy that keeps last N commits
* around, through creates.
*/
public void testKeepLastNDeletionPolicyWithCreates() throws IOException {
@@ -777,18 +644,21 @@ public class TestDeletionPolicy extends
}
writer = new IndexWriter(dir, conf);
for(int j=0;j<17;j++) {
- addDoc(writer);
+ addDocWithID(writer, i*(N+1)+j);
}
// this is a commit
writer.close();
- IndexReader reader = IndexReader.open(dir, policy, false);
- reader.deleteDocument(3);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(5, "content", sim.encodeNormValue(2.0F));
+ conf = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setIndexDeletionPolicy(policy)
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(dir, conf);
+ writer.deleteDocuments(new Term("id", "" + (i*(N+1)+3)));
+ // this is a commit
+ writer.close();
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = newSearcher(reader);
ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
assertEquals(16, hits.length);
- // this is a commit
reader.close();
searcher.close();
@@ -803,7 +673,7 @@ public class TestDeletionPolicy extends
assertEquals(3*(N+1), policy.numOnInit);
assertEquals(3*(N+1)+1, policy.numOnCommit);
- IndexReader rwReader = IndexReader.open(dir, false);
+ IndexReader rwReader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(rwReader);
ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
assertEquals(0, hits.length);
@@ -820,7 +690,7 @@ public class TestDeletionPolicy extends
for(int i=0;i<N+1;i++) {
try {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
// Work backwards in commits on what the expected
// count should be.
@@ -854,6 +724,13 @@ public class TestDeletionPolicy extends
}
}
+ private void addDocWithID(IndexWriter writer, int id) throws IOException {
+ Document doc = new Document();
+ doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+ doc.add(newField("id", "" + id, StringField.TYPE_UNSTORED));
+ writer.addDocument(doc);
+ }
+
private void addDoc(IndexWriter writer) throws IOException
{
Document doc = new Document();
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=1212292&r1=1212291&r2=1212292&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 Fri Dec 9 09:13:39 2011
@@ -64,7 +64,7 @@ public class TestDirectoryReader extends
protected IndexReader openReader() throws IOException {
IndexReader reader;
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
assertTrue(reader instanceof DirectoryReader);
assertTrue(dir != null);
@@ -74,12 +74,7 @@ public class TestDirectoryReader extends
return reader;
}
- public void test() throws Exception {
- doTestDocument();
- doTestUndeleteAll();
- }
-
- public void doTestDocument() throws IOException {
+ public void testDocument() throws IOException {
sis.read(dir);
IndexReader reader = openReader();
assertTrue(reader != null);
@@ -94,50 +89,13 @@ public class TestDirectoryReader extends
TestSegmentReader.checkNorms(reader);
reader.close();
}
-
- public void doTestUndeleteAll() throws IOException {
- sis.read(dir);
- IndexReader reader = openReader();
- assertTrue(reader != null);
- assertEquals( 2, reader.numDocs() );
- reader.deleteDocument(0);
- assertEquals( 1, reader.numDocs() );
- reader.undeleteAll();
- assertEquals( 2, reader.numDocs() );
-
- // Ensure undeleteAll survives commit/close/reopen:
- reader.commit();
- reader.close();
-
- if (reader instanceof MultiReader)
- // MultiReader does not "own" the directory so it does
- // not write the changes to sis on commit:
- sis.commit(dir, sis.codecFormat());
-
- sis.read(dir);
- reader = openReader();
- assertEquals( 2, reader.numDocs() );
-
- reader.deleteDocument(0);
- assertEquals( 1, reader.numDocs() );
- reader.commit();
- reader.close();
- if (reader instanceof MultiReader)
- // MultiReader does not "own" the directory so it does
- // not write the changes to sis on commit:
- sis.commit(dir, sis.codecFormat());
- sis.read(dir);
- reader = openReader();
- assertEquals( 1, reader.numDocs() );
- reader.close();
- }
public void testIsCurrent() throws IOException {
Directory ramDir1=newDirectory();
addDoc(random, ramDir1, "test foo", true);
Directory ramDir2=newDirectory();
addDoc(random, ramDir2, "test blah", true);
- IndexReader[] readers = new IndexReader[]{IndexReader.open(ramDir1, false), IndexReader.open(ramDir2, false)};
+ IndexReader[] readers = new IndexReader[]{IndexReader.open(ramDir1), IndexReader.open(ramDir2)};
MultiReader mr = new MultiReader(readers);
assertTrue(mr.isCurrent()); // just opened, must be current
addDoc(random, ramDir1, "more text", false);
@@ -163,8 +121,8 @@ public class TestDirectoryReader extends
Directory ramDir3=newDirectory();
addDoc(random, ramDir3, "test wow", true);
- IndexReader[] readers1 = new IndexReader[]{IndexReader.open(ramDir1, false), IndexReader.open(ramDir3, false)};
- IndexReader[] readers2 = new IndexReader[]{IndexReader.open(ramDir1, false), IndexReader.open(ramDir2, false), IndexReader.open(ramDir3, false)};
+ IndexReader[] readers1 = new IndexReader[]{IndexReader.open(ramDir1), IndexReader.open(ramDir3)};
+ IndexReader[] readers2 = new IndexReader[]{IndexReader.open(ramDir1), IndexReader.open(ramDir2), IndexReader.open(ramDir3)};
MultiReader mr2 = new MultiReader(readers1);
MultiReader mr3 = new MultiReader(readers2);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java Fri Dec 9 09:13:39 2011
@@ -196,8 +196,8 @@ public class TestDoc extends LuceneTestC
private SegmentInfo merge(Directory dir, SegmentInfo si1, SegmentInfo si2, String merged, boolean useCompoundFile)
throws Exception {
IOContext context = newIOContext(random);
- SegmentReader r1 = SegmentReader.get(true, si1, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
- SegmentReader r2 = SegmentReader.get(true, si2, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
+ SegmentReader r1 = SegmentReader.get(si1, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
+ SegmentReader r2 = SegmentReader.get(si2, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
final Codec codec = Codec.getDefault();
SegmentMerger merger = new SegmentMerger(InfoStream.getDefault(), si1.dir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, merged, MergeState.CheckAbort.NONE, null, new FieldInfos(new FieldInfos.FieldNumberBiMap()), codec, context);
@@ -224,7 +224,7 @@ public class TestDoc extends LuceneTestC
private void printSegment(PrintWriter out, SegmentInfo si)
throws Exception {
- SegmentReader reader = SegmentReader.get(true, si, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
+ SegmentReader reader = SegmentReader.get(si, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
for (int i = 0; i < reader.numDocs(); i++)
out.println(reader.document(i));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java Fri Dec 9 09:13:39 2011
@@ -64,7 +64,7 @@ public class TestDocumentWriter extends
SegmentInfo info = writer.newestSegment();
writer.close();
//After adding the document, we should be able to read it back in
- SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
+ SegmentReader reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
assertTrue(reader != null);
Document doc = reader.document(0);
assertTrue(doc != null);
@@ -125,7 +125,7 @@ public class TestDocumentWriter extends
writer.commit();
SegmentInfo info = writer.newestSegment();
writer.close();
- SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
+ SegmentReader reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
DocsAndPositionsEnum termPositions = MultiFields.getTermPositionsEnum(reader, MultiFields.getLiveDocs(reader),
"repeated", new BytesRef("repeated"));
@@ -197,7 +197,7 @@ public class TestDocumentWriter extends
writer.commit();
SegmentInfo info = writer.newestSegment();
writer.close();
- SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
+ SegmentReader reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
DocsAndPositionsEnum termPositions = MultiFields.getTermPositionsEnum(reader, reader.getLiveDocs(), "f1", new BytesRef("a"));
assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
@@ -241,7 +241,7 @@ public class TestDocumentWriter extends
writer.commit();
SegmentInfo info = writer.newestSegment();
writer.close();
- SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
+ SegmentReader reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
DocsAndPositionsEnum termPositions = reader.termPositionsEnum(reader.getLiveDocs(), "preanalyzed", new BytesRef("term1"));
assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
@@ -285,7 +285,7 @@ public class TestDocumentWriter extends
_TestUtil.checkIndex(dir);
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
// f1
Terms tfv1 = reader.getTermVectors(0).terms("f1");
assertNotNull(tfv1);
@@ -326,7 +326,7 @@ public class TestDocumentWriter extends
_TestUtil.checkIndex(dir);
- SegmentReader reader = getOnlySegmentReader(IndexReader.open(dir, false));
+ SegmentReader reader = getOnlySegmentReader(IndexReader.open(dir));
FieldInfos fi = reader.fieldInfos();
// f1
assertFalse("f1 should have no norms", reader.hasNorms("f1"));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java Fri Dec 9 09:13:39 2011
@@ -206,7 +206,7 @@ public class TestFieldsReader extends Lu
writer.forceMerge(1);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
FaultyIndexInput.doFail = true;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java Fri Dec 9 09:13:39 2011
@@ -28,6 +28,9 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.Bits;
import java.io.IOException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.HashSet;
public class TestFilterIndexReader extends LuceneTestCase {
@@ -144,11 +147,11 @@ public class TestFilterIndexReader exten
Directory target = newDirectory();
writer = new IndexWriter(target, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- IndexReader reader = new TestReader(IndexReader.open(directory, true));
+ IndexReader reader = new TestReader(IndexReader.open(directory));
writer.addIndexes(reader);
writer.close();
reader.close();
- reader = IndexReader.open(target, true);
+ reader = IndexReader.open(target);
TermsEnum terms = MultiFields.getTerms(reader, "default").iterator(null);
while (terms.next() != null) {
@@ -167,4 +170,28 @@ public class TestFilterIndexReader exten
directory.close();
target.close();
}
+
+ public void testOverrideMethods() throws Exception {
+ HashSet<String> methodsThatShouldNotBeOverridden = new HashSet<String>();
+ methodsThatShouldNotBeOverridden.add("doOpenIfChanged");
+ methodsThatShouldNotBeOverridden.add("clone");
+ boolean fail = false;
+ for (Method m : FilterIndexReader.class.getMethods()) {
+ int mods = m.getModifiers();
+ if (Modifier.isStatic(mods) || Modifier.isFinal(mods)) {
+ continue;
+ }
+ Class< ? > declaringClass = m.getDeclaringClass();
+ String name = m.getName();
+ if (declaringClass != FilterIndexReader.class && declaringClass != Object.class && !methodsThatShouldNotBeOverridden.contains(name)) {
+ System.err.println("method is not overridden by FilterIndexReader: " + name);
+ fail = true;
+ } else if (declaringClass == FilterIndexReader.class && methodsThatShouldNotBeOverridden.contains(name)) {
+ System.err.println("method should not be overridden by FilterIndexReader: " + name);
+ fail = true;
+ }
+ }
+ assertFalse("FilterIndexReader overrides (or not) some problematic methods; see log above", fail);
+ }
+
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java Fri Dec 9 09:13:39 2011
@@ -68,14 +68,14 @@ public class TestIndexFileDeleter extend
writer.close();
// Delete one doc so we get a .del file:
- IndexReader reader = IndexReader.open(dir, false);
+ writer = new IndexWriter(
+ dir,
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
+ setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES)
+ );
Term searchTerm = new Term("id", "7");
- int delCount = reader.deleteDocuments(searchTerm);
- assertEquals("didn't delete the right number of documents", 1, delCount);
- DefaultSimilarity sim = new DefaultSimilarity();
- // Set one norm so we get a .s0 file:
- reader.setNorm(21, "content", sim.encodeNormValue(1.5f));
- reader.close();
+ writer.deleteDocuments(searchTerm);
+ writer.close();
// Now, artificially create an extra .del file & extra
// .s0 file:
@@ -87,47 +87,6 @@ public class TestIndexFileDeleter extend
}
*/
- // The numbering of fields can vary depending on which
- // JRE is in use. On some JREs we see content bound to
- // field 0; on others, field 1. So, here we have to
- // figure out which field number corresponds to
- // "content", and then set our expected file names below
- // accordingly:
- CompoundFileDirectory cfsReader = new CompoundFileDirectory(dir, "_2.cfs", newIOContext(random), false);
- FieldInfosReader infosReader = Codec.getDefault().fieldInfosFormat().getFieldInfosReader();
- FieldInfos fieldInfos = infosReader.read(cfsReader, "2", IOContext.READONCE);
- int contentFieldIndex = -1;
- for (FieldInfo fi : fieldInfos) {
- if (fi.name.equals("content")) {
- contentFieldIndex = fi.number;
- break;
- }
- }
- cfsReader.close();
- assertTrue("could not locate the 'content' field number in the _2.cfs segment", contentFieldIndex != -1);
-
- String normSuffix = "s" + contentFieldIndex;
-
- // Create a bogus separate norms file for a
- // segment/field that actually has a separate norms file
- // already:
- copyFile(dir, "_2_1." + normSuffix, "_2_2." + normSuffix);
-
- // Create a bogus separate norms file for a
- // segment/field that actually has a separate norms file
- // already, using the "not compound file" extension:
- copyFile(dir, "_2_1." + normSuffix, "_2_2.f" + contentFieldIndex);
-
- // Create a bogus separate norms file for a
- // segment/field that does not have a separate norms
- // file already:
- copyFile(dir, "_2_1." + normSuffix, "_1_1." + normSuffix);
-
- // Create a bogus separate norms file for a
- // segment/field that does not have a separate norms
- // file already using the "not compound file" extension:
- copyFile(dir, "_2_1." + normSuffix, "_1_1.f" + contentFieldIndex);
-
// Create a bogus separate del file for a
// segment that already has a separate del file:
copyFile(dir, "_0_1.del", "_0_2.del");
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=1212292&r1=1212291&r2=1212292&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 Fri Dec 9 09:13:39 2011
@@ -52,64 +52,8 @@ import org.apache.lucene.util._TestUtil;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.Bits;
-public class TestIndexReader extends LuceneTestCase
-{
-
- public void testCommitUserData() throws Exception {
- Directory d = newDirectory();
-
- Map<String,String> commitUserData = new HashMap<String,String>();
- commitUserData.put("foo", "fighters");
-
- // set up writer
- IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setMaxBufferedDocs(2));
- for(int i=0;i<27;i++)
- addDocumentWithFields(writer);
- writer.close();
-
- IndexReader r = IndexReader.open(d, false);
- r.deleteDocument(5);
- r.flush(commitUserData);
- IndexCommit c = r.getIndexCommit();
- r.close();
-
- SegmentInfos sis = new SegmentInfos();
- sis.read(d);
- IndexReader r2 = IndexReader.open(d, false);
- assertEquals(c.getUserData(), commitUserData);
-
- assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
-
- // Change the index
- writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random)).setOpenMode(
- OpenMode.APPEND).setMaxBufferedDocs(2));
- for(int i=0;i<7;i++)
- addDocumentWithFields(writer);
- writer.close();
-
- IndexReader r3 = IndexReader.openIfChanged(r2);
- assertNotNull(r3);
- assertFalse(c.equals(r3.getIndexCommit()));
- assertFalse(r2.getIndexCommit().getSegmentCount() == 1 && !r2.hasDeletions());
- r3.close();
-
- writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND));
- writer.forceMerge(1);
- writer.close();
-
- r3 = IndexReader.openIfChanged(r2);
- assertNotNull(r3);
- assertEquals(1, r3.getIndexCommit().getSegmentCount());
- r2.close();
- r3.close();
- d.close();
- }
-
+public class TestIndexReader extends LuceneTestCase {
+
public void testIsCurrent() throws Exception {
Directory d = newDirectory();
IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(
@@ -117,7 +61,7 @@ public class TestIndexReader extends Luc
addDocumentWithFields(writer);
writer.close();
// set up reader:
- IndexReader reader = IndexReader.open(d, false);
+ IndexReader reader = IndexReader.open(d);
assertTrue(reader.isCurrent());
// modify index by adding another document:
writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
@@ -160,7 +104,7 @@ public class TestIndexReader extends Luc
writer.close();
// set up reader
- IndexReader reader = IndexReader.open(d, false);
+ IndexReader reader = IndexReader.open(d);
Collection<String> fieldNames = reader.getFieldNames(IndexReader.FieldOption.ALL);
assertTrue(fieldNames.contains("keyword"));
assertTrue(fieldNames.contains("text"));
@@ -220,7 +164,7 @@ public class TestIndexReader extends Luc
writer.close();
// verify fields again
- reader = IndexReader.open(d, false);
+ reader = IndexReader.open(d);
fieldNames = reader.getFieldNames(IndexReader.FieldOption.ALL);
assertEquals(13, fieldNames.size()); // the following fields
assertTrue(fieldNames.contains("keyword"));
@@ -355,7 +299,7 @@ public class TestIndexReader extends Luc
doc.add(new TextField("junk", "junk text"));
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
Document doc2 = reader.document(reader.maxDoc() - 1);
IndexableField[] fields = doc2.getFields("bin1");
assertNotNull(fields);
@@ -374,7 +318,7 @@ public class TestIndexReader extends Luc
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.APPEND).setMergePolicy(newLogMergePolicy()));
writer.forceMerge(1);
writer.close();
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
doc2 = reader.document(reader.maxDoc() - 1);
fields = doc2.getFields("bin1");
assertNotNull(fields);
@@ -390,170 +334,6 @@ public class TestIndexReader extends Luc
dir.close();
}
- // Make sure attempts to make changes after reader is
- // closed throws IOException:
- public void testChangesAfterClose() throws IOException {
- Directory dir = newDirectory();
-
- IndexWriter writer = null;
- IndexReader reader = null;
- Term searchTerm = new Term("content", "aaa");
-
- // add 11 documents with term : aaa
- writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- for (int i = 0; i < 11; i++) {
- addDoc(writer, searchTerm.text());
- }
- writer.close();
-
- reader = IndexReader.open(dir, false);
-
- // Close reader:
- reader.close();
-
- // Then, try to make changes:
- try {
- reader.deleteDocument(4);
- fail("deleteDocument after close failed to throw IOException");
- } catch (AlreadyClosedException e) {
- // expected
- }
-
- DefaultSimilarity sim = new DefaultSimilarity();
- try {
- reader.setNorm(5, "aaa", sim.encodeNormValue(2.0f));
- fail("setNorm after close failed to throw IOException");
- } catch (AlreadyClosedException e) {
- // expected
- }
-
- try {
- reader.undeleteAll();
- fail("undeleteAll after close failed to throw IOException");
- } catch (AlreadyClosedException e) {
- // expected
- }
- dir.close();
- }
-
- // Make sure we get lock obtain failed exception with 2 writers:
- public void testLockObtainFailed() throws IOException {
- Directory dir = newDirectory();
-
- Term searchTerm = new Term("content", "aaa");
-
- // add 11 documents with term : aaa
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- writer.commit();
- for (int i = 0; i < 11; i++) {
- addDoc(writer, searchTerm.text());
- }
-
- // Create reader:
- IndexReader reader = IndexReader.open(dir, false);
-
- // Try to make changes
- try {
- reader.deleteDocument(4);
- fail("deleteDocument should have hit LockObtainFailedException");
- } catch (LockObtainFailedException e) {
- // expected
- }
-
- DefaultSimilarity sim = new DefaultSimilarity();
- try {
- reader.setNorm(5, "aaa", sim.encodeNormValue(2.0f));
- fail("setNorm should have hit LockObtainFailedException");
- } catch (LockObtainFailedException e) {
- // expected
- }
-
- try {
- reader.undeleteAll();
- fail("undeleteAll should have hit LockObtainFailedException");
- } catch (LockObtainFailedException e) {
- // expected
- }
- writer.close();
- reader.close();
- dir.close();
- }
-
- // Make sure you can set norms & commit even if a reader
- // is open against the index:
- public void testWritingNorms() throws IOException {
- Directory dir = newDirectory();
- Term searchTerm = new Term("content", "aaa");
-
- // add 1 documents with term : aaa
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- addDoc(writer, searchTerm.text());
- writer.close();
-
- // now open reader & set norm for doc 0
- IndexReader reader = IndexReader.open(dir, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(0, "content", sim.encodeNormValue(2.0f));
-
- // we should be holding the write lock now:
- assertTrue("locked", IndexWriter.isLocked(dir));
-
- reader.commit();
-
- // we should not be holding the write lock now:
- assertTrue("not locked", !IndexWriter.isLocked(dir));
-
- // open a 2nd reader:
- IndexReader reader2 = IndexReader.open(dir, false);
-
- // set norm again for doc 0
- reader.setNorm(0, "content", sim.encodeNormValue(3.0f));
- assertTrue("locked", IndexWriter.isLocked(dir));
-
- reader.close();
-
- // we should not be holding the write lock now:
- assertTrue("not locked", !IndexWriter.isLocked(dir));
-
- reader2.close();
- dir.close();
- }
-
-
- // Make sure you can set norms & commit, and there are
- // no extra norms files left:
- public void testWritingNormsNoReader() throws IOException {
- Directory dir = newDirectory();
- IndexWriter writer = null;
- IndexReader reader = null;
- Term searchTerm = new Term("content", "aaa");
-
- // add 1 documents with term : aaa
- writer = new IndexWriter(
- dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
- setMergePolicy(newLogMergePolicy(false))
- );
- addDoc(writer, searchTerm.text());
- writer.close();
-
- DefaultSimilarity sim = new DefaultSimilarity();
- // now open reader & set norm for doc 0 (writes to
- // _0_1.s0)
- reader = IndexReader.open(dir, false);
- reader.setNorm(0, "content", sim.encodeNormValue(2.0f));
- reader.close();
-
- // now open reader again & set norm for doc 0 (writes to _0_2.s0)
- reader = IndexReader.open(dir, false);
- reader.setNorm(0, "content", sim.encodeNormValue(2.0f));
- reader.close();
- assertFalse("failed to remove first generation norms file on writing second generation",
- dir.fileExists("_0_1.s0"));
-
- dir.close();
- }
-
/* ??? public void testOpenEmptyDirectory() throws IOException{
String dirName = "test.empty";
File fileDirName = new File(dirName);
@@ -590,7 +370,7 @@ public class TestIndexReader extends Luc
// Now open existing directory and test that reader closes all files
dir = newFSDirectory(dirFile);
- IndexReader reader1 = IndexReader.open(dir, false);
+ IndexReader reader1 = IndexReader.open(dir);
reader1.close();
dir.close();
@@ -608,7 +388,7 @@ public class TestIndexReader extends Luc
assertTrue(IndexWriter.isLocked(dir)); // writer open, so dir is locked
writer.close();
assertTrue(IndexReader.indexExists(dir));
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertFalse(IndexWriter.isLocked(dir)); // reader only, no lock
long version = IndexReader.lastModified(dir);
if (i == 1) {
@@ -623,7 +403,7 @@ public class TestIndexReader extends Luc
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE));
addDocumentWithFields(writer);
writer.close();
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
assertTrue("old lastModified is " + version + "; new lastModified is " + IndexReader.lastModified(dir), version <= IndexReader.lastModified(dir));
reader.close();
dir.close();
@@ -638,7 +418,7 @@ public class TestIndexReader extends Luc
assertTrue(IndexWriter.isLocked(dir)); // writer open, so dir is locked
writer.close();
assertTrue(IndexReader.indexExists(dir));
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
assertFalse(IndexWriter.isLocked(dir)); // reader only, no lock
long version = IndexReader.getCurrentVersion(dir);
reader.close();
@@ -647,114 +427,17 @@ public class TestIndexReader extends Luc
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE));
addDocumentWithFields(writer);
writer.close();
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
assertTrue("old version is " + version + "; new version is " + IndexReader.getCurrentVersion(dir), version < IndexReader.getCurrentVersion(dir));
reader.close();
dir.close();
}
- public void testLock() throws IOException {
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- addDocumentWithFields(writer);
- writer.close();
- writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.APPEND));
- IndexReader reader = IndexReader.open(dir, false);
- try {
- reader.deleteDocument(0);
- fail("expected lock");
- } catch(IOException e) {
- // expected exception
- }
- try {
- IndexWriter.unlock(dir); // this should not be done in the real world!
- } catch (LockReleaseFailedException lrfe) {
- writer.close();
- }
- reader.deleteDocument(0);
- reader.close();
- writer.close();
- dir.close();
- }
-
- public void testDocsOutOfOrderJIRA140() throws IOException {
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- for(int i=0;i<11;i++) {
- addDoc(writer, "aaa");
- }
- writer.close();
- IndexReader reader = IndexReader.open(dir, false);
-
- // Try to delete an invalid docId, yet, within range
- // of the final bits of the BitVector:
-
- boolean gotException = false;
- try {
- reader.deleteDocument(11);
- } catch (ArrayIndexOutOfBoundsException e) {
- gotException = true;
- }
- reader.close();
-
- writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.APPEND));
-
- // We must add more docs to get a new segment written
- for(int i=0;i<11;i++) {
- addDoc(writer, "aaa");
- }
-
- // Without the fix for LUCENE-140 this call will
- // [incorrectly] hit a "docs out of order"
- // IllegalStateException because above out-of-bounds
- // deleteDocument corrupted the index:
- writer.forceMerge(1);
- writer.close();
- if (!gotException) {
- fail("delete of out-of-bounds doc number failed to hit exception");
- }
- dir.close();
- }
-
- public void testExceptionReleaseWriteLockJIRA768() throws IOException {
-
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- addDoc(writer, "aaa");
- writer.close();
-
- IndexReader reader = IndexReader.open(dir, false);
- try {
- reader.deleteDocument(1);
- fail("did not hit exception when deleting an invalid doc number");
- } catch (ArrayIndexOutOfBoundsException e) {
- // expected
- }
- reader.close();
- if (IndexWriter.isLocked(dir)) {
- fail("write lock is still held after close");
- }
-
- reader = IndexReader.open(dir, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- try {
- reader.setNorm(1, "content", sim.encodeNormValue(2.0f));
- fail("did not hit exception when calling setNorm on an invalid doc number");
- } catch (ArrayIndexOutOfBoundsException e) {
- // expected
- }
- reader.close();
- if (IndexWriter.isLocked(dir)) {
- fail("write lock is still held after close");
- }
- dir.close();
- }
-
public void testOpenReaderAfterDelete() throws IOException {
File dirFile = _TestUtil.getTempDir("deletetest");
Directory dir = newFSDirectory(dirFile);
try {
- IndexReader.open(dir, false);
+ IndexReader.open(dir);
fail("expected FileNotFoundException");
} catch (FileNotFoundException e) {
// expected
@@ -764,7 +447,7 @@ public class TestIndexReader extends Luc
// Make sure we still get a CorruptIndexException (not NPE):
try {
- IndexReader.open(dir, false);
+ IndexReader.open(dir);
fail("expected FileNotFoundException");
} catch (FileNotFoundException e) {
// expected
@@ -946,7 +629,7 @@ public class TestIndexReader extends Luc
SegmentInfos sis = new SegmentInfos();
sis.read(d);
- IndexReader r = IndexReader.open(d, false);
+ IndexReader r = IndexReader.open(d);
IndexCommit c = r.getIndexCommit();
assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
@@ -987,96 +670,6 @@ public class TestIndexReader extends Luc
d.close();
}
- public void testReadOnly() throws Throwable {
- Directory d = newDirectory();
- IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- addDocumentWithFields(writer);
- writer.commit();
- addDocumentWithFields(writer);
- writer.close();
-
- IndexReader r = IndexReader.open(d, true);
- try {
- r.deleteDocument(0);
- fail();
- } catch (UnsupportedOperationException uoe) {
- // expected
- }
-
- writer = new IndexWriter(
- d,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
- setOpenMode(OpenMode.APPEND).
- setMergePolicy(newLogMergePolicy(10))
- );
- addDocumentWithFields(writer);
- writer.close();
-
- // Make sure reopen is still readonly:
- IndexReader r2 = IndexReader.openIfChanged(r);
- assertNotNull(r2);
- r.close();
-
- assertFalse(r == r2);
-
- try {
- r2.deleteDocument(0);
- fail();
- } catch (UnsupportedOperationException uoe) {
- // expected
- }
-
- writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND));
- writer.forceMerge(1);
- writer.close();
-
- // Make sure reopen to a single segment is still readonly:
- IndexReader r3 = IndexReader.openIfChanged(r2);
- assertNotNull(r3);
- assertFalse(r3 == r2);
- r2.close();
-
- assertFalse(r == r2);
-
- try {
- r3.deleteDocument(0);
- fail();
- } catch (UnsupportedOperationException uoe) {
- // expected
- }
-
- // Make sure write lock isn't held
- writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND));
- writer.close();
-
- r3.close();
- d.close();
- }
-
-
- // LUCENE-1474
- public void testIndexReader() throws Exception {
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- writer.addDocument(createDocument("a"));
- writer.addDocument(createDocument("b"));
- writer.addDocument(createDocument("c"));
- writer.close();
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocuments(new Term("id", "a"));
- reader.flush();
- reader.deleteDocuments(new Term("id", "b"));
- reader.close();
- IndexReader.open(dir,true).close();
- dir.close();
- }
-
static Document createDocument(String id) {
Document doc = new Document();
FieldType customType = new FieldType(TextField.TYPE_STORED);
@@ -1093,7 +686,7 @@ public class TestIndexReader extends Luc
public void testNoDir() throws Throwable {
Directory dir = newFSDirectory(_TestUtil.getTempDir("doesnotexist"));
try {
- IndexReader.open(dir, true);
+ IndexReader.open(dir);
fail("did not hit expected exception");
} catch (NoSuchDirectoryException nsde) {
// expected
@@ -1138,7 +731,7 @@ public class TestIndexReader extends Luc
writer.close();
// Open reader
- IndexReader r = getOnlySegmentReader(IndexReader.open(dir, false));
+ IndexReader r = getOnlySegmentReader(IndexReader.open(dir));
final int[] ints = FieldCache.DEFAULT.getInts(r, "number", false);
assertEquals(1, ints.length);
assertEquals(17, ints[0]);
@@ -1173,7 +766,7 @@ public class TestIndexReader extends Luc
writer.commit();
// Open reader1
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
IndexReader r1 = getOnlySegmentReader(r);
final int[] ints = FieldCache.DEFAULT.getInts(r1, "number", false);
assertEquals(1, ints.length);
@@ -1207,7 +800,7 @@ public class TestIndexReader extends Luc
writer.addDocument(doc);
writer.commit();
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
IndexReader r1 = getOnlySegmentReader(r);
assertEquals(36, r1.getUniqueTermCount());
writer.addDocument(doc);
@@ -1237,7 +830,7 @@ public class TestIndexReader extends Luc
writer.addDocument(doc);
writer.close();
- IndexReader r = IndexReader.open(dir, null, true, -1);
+ IndexReader r = IndexReader.open(dir, -1);
try {
r.docFreq(new Term("field", "f"));
fail("did not hit expected exception");
@@ -1282,7 +875,7 @@ public class TestIndexReader extends Luc
writer.commit();
Document doc = new Document();
writer.addDocument(doc);
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
assertTrue(r.isCurrent());
writer.addDocument(doc);
writer.prepareCommit();