Package org.apache.lucene.codecs
Class StoredFieldsWriter
java.lang.Object
org.apache.lucene.codecs.StoredFieldsWriter
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
CompressingStoredFieldsWriter
,Lucene40StoredFieldsWriter
Codec API for writing stored fields:
- For every document,
startDocument(int)
is called, informing the Codec how many fields will be written. writeField(FieldInfo, IndexableField)
is called for each field in the document.- After all documents have been written,
finish(FieldInfos, int)
is called for verification/sanity-checks. - Finally the writer is closed (
close()
)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
abort()
Aborts writing entirely, implementation should remove any partially-written files, etc.protected final void
addDocument
(Iterable<? extends IndexableField> doc, FieldInfos fieldInfos) sugar method for startDocument() + writeField() for every stored field in the documentabstract void
close()
abstract void
finish
(FieldInfos fis, int numDocs) Called beforeclose()
, passing in the number of documents that were written.void
Called when a document and all its fields have been added.int
merge
(MergeState mergeState) Merges in the stored fields from the readers inmergeState
.abstract void
startDocument
(int numStoredFields) Called before writing the stored fields of the document.abstract void
writeField
(FieldInfo info, IndexableField field) Writes a single stored field.
-
Constructor Details
-
StoredFieldsWriter
protected StoredFieldsWriter()Sole constructor. (For invocation by subclass constructors, typically implicit.)
-
-
Method Details
-
startDocument
Called before writing the stored fields of the document.writeField(FieldInfo, IndexableField)
will be callednumStoredFields
times. Note that this is called even if the document has no stored fields, in this casenumStoredFields
will be zero.- Throws:
IOException
-
finishDocument
Called when a document and all its fields have been added.- Throws:
IOException
-
writeField
Writes a single stored field.- Throws:
IOException
-
abort
public abstract void abort()Aborts writing entirely, implementation should remove any partially-written files, etc. -
finish
Called beforeclose()
, passing in the number of documents that were written. Note that this is intentionally redundant (equivalent to the number of calls tostartDocument(int)
, but a Codec should check that this is the case to detect the JRE bug described in LUCENE-1282.- Throws:
IOException
-
merge
Merges in the stored fields from the readers inmergeState
. The default implementation skips over deleted documents, and usesstartDocument(int)
,writeField(FieldInfo, IndexableField)
, andfinish(FieldInfos, int)
, returning the number of documents that were written. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).- Throws:
IOException
-
addDocument
protected final void addDocument(Iterable<? extends IndexableField> doc, FieldInfos fieldInfos) throws IOException sugar method for startDocument() + writeField() for every stored field in the document- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-