You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/11/08 06:15:23 UTC
svn commit: r1199111 - in
/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index: ./
codecs/
Author: rmuir
Date: Tue Nov 8 05:15:22 2011
New Revision: 1199111
URL: http://svn.apache.org/viewvc?rev=1199111&view=rev
Log:
LUCENE-2621: clean up FieldsReader api
Modified:
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsFormat.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsReader.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsWriter.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsFormat.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsReader.java
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java Tue Nov 8 05:15:22 2011
@@ -166,14 +166,8 @@ final class SegmentCoreReaders {
}
final String storesSegment = si.getDocStoreSegment();
- fieldsReaderOrig = si.getCodec().fieldsFormat().fieldsReader(storeDir, storesSegment, fieldInfos, context,
- si.getDocStoreOffset(), si.docCount);
-
- // Verify two sources of "maxDoc" agree:
- if (si.getDocStoreOffset() == -1 && fieldsReaderOrig.size() != si.docCount) {
- throw new CorruptIndexException("doc counts differ for segment " + segment + ": fieldsReader shows " + fieldsReaderOrig.size() + " but segmentInfo shows " + si.docCount);
- }
-
+ fieldsReaderOrig = si.getCodec().fieldsFormat().fieldsReader(storeDir, si, fieldInfos, context);
+
if (si.getHasVectors()) { // open term vector files only as needed
termVectorsReaderOrig = new TermVectorsReader(storeDir, storesSegment, fieldInfos, context, si.getDocStoreOffset(), si.docCount);
}
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsFormat.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsFormat.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsFormat.java Tue Nov 8 05:15:22 2011
@@ -29,10 +29,9 @@ import org.apache.lucene.store.IOContext
public class DefaultFieldsFormat extends FieldsFormat {
@Override
- public FieldsReader fieldsReader(Directory directory, String segment,
- FieldInfos fn, IOContext context, int docStoreOffset, int size)
- throws IOException {
- return new DefaultFieldsReader(directory, segment, fn, context, docStoreOffset, size);
+ public FieldsReader fieldsReader(Directory directory, SegmentInfo si,
+ FieldInfos fn, IOContext context) throws IOException {
+ return new DefaultFieldsReader(directory, si, fn, context);
}
@Override
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsReader.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsReader.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsReader.java Tue Nov 8 05:15:22 2011
@@ -112,12 +112,11 @@ public final class DefaultFieldsReader e
fieldsStream = (IndexInput) cloneableFieldsStream.clone();
indexStream = (IndexInput) cloneableIndexStream.clone();
}
-
- public DefaultFieldsReader(Directory d, String segment, FieldInfos fn) throws IOException {
- this(d, segment, fn, IOContext.DEFAULT, -1, 0);
- }
- public DefaultFieldsReader(Directory d, String segment, FieldInfos fn, IOContext context, int docStoreOffset, int size) throws IOException {
+ public DefaultFieldsReader(Directory d, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {
+ final String segment = si.getDocStoreSegment();
+ final int docStoreOffset = si.getDocStoreOffset();
+ final int size = si.docCount;
boolean success = false;
isOriginal = true;
try {
@@ -149,6 +148,10 @@ public final class DefaultFieldsReader e
} else {
this.docStoreOffset = 0;
this.size = (int) (indexSize >> 3);
+ // Verify two sources of "maxDoc" agree:
+ if (this.size != si.docCount) {
+ throw new CorruptIndexException("doc counts differ for segment " + segment + ": fieldsReader shows " + this.size + " but segmentInfo shows " + si.docCount);
+ }
}
indexStream = (IndexInput) cloneableIndexStream.clone();
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsWriter.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsWriter.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/DefaultFieldsWriter.java Tue Nov 8 05:15:22 2011
@@ -78,7 +78,7 @@ public final class DefaultFieldsWriter e
private IndexOutput fieldsStream;
private IndexOutput indexStream;
- DefaultFieldsWriter(Directory directory, String segment, IOContext context) throws IOException {
+ public DefaultFieldsWriter(Directory directory, String segment, IOContext context) throws IOException {
this.directory = directory;
this.segment = segment;
@@ -98,13 +98,6 @@ public final class DefaultFieldsWriter e
}
}
- DefaultFieldsWriter(IndexOutput fdx, IndexOutput fdt) {
- directory = null;
- segment = null;
- fieldsStream = fdt;
- indexStream = fdx;
- }
-
void setFieldsStream(IndexOutput stream) {
this.fieldsStream = stream;
}
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsFormat.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsFormat.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsFormat.java Tue Nov 8 05:15:22 2011
@@ -29,7 +29,7 @@ import org.apache.lucene.store.IOContext
* Controls the format of stored fields/termvectors/...
*/
public abstract class FieldsFormat {
- public abstract FieldsReader fieldsReader(Directory directory, String segment, FieldInfos fn, IOContext context, int docStoreOffset, int size) throws IOException;
+ public abstract FieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException;
public abstract FieldsWriter fieldsWriter(Directory directory, String segment, IOContext context) throws IOException;
public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
}
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsReader.java?rev=1199111&r1=1199110&r2=1199111&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsReader.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/FieldsReader.java Tue Nov 8 05:15:22 2011
@@ -22,11 +22,18 @@ import org.apache.lucene.index.StoredFie
* the License.
*/
+/**
+ * Codec API for reading stored fields:
+ *
+ * You need to implement {@link #visitDocument(int, StoredFieldVisitor)} to
+ * read the stored fields for a document, implement {@link #clone()} (creating
+ * clones of any IndexInputs used, etc), and {@link #close()}
+ * @lucene.experimental
+ */
public abstract class FieldsReader implements Cloneable, Closeable {
+ /** Visit the stored fields for document <code>n</code> */
public abstract void visitDocument(int n, StoredFieldVisitor visitor) throws CorruptIndexException, IOException;
-
- public abstract int size();
public abstract FieldsReader clone();
}