Class StoredFieldsWriter

java.lang.Object
org.apache.lucene.codecs.StoredFieldsWriter
All Implemented Interfaces:
Closeable, AutoCloseable, Accountable
Direct Known Subclasses:
Lucene90CompressingStoredFieldsWriter

public abstract class StoredFieldsWriter extends Object implements Closeable, Accountable
Codec API for writing stored fields:
  1. For every document, startDocument() is called, informing the Codec that a new document has started.
  2. writeField is called for each field in the document.
  3. After all documents have been written, finish(int) is called for verification/sanity-checks.
  4. Finally the writer is closed (close())
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Details

    • StoredFieldsWriter

      protected StoredFieldsWriter()
      Sole constructor. (For invocation by subclass constructors, typically implicit.)
  • Method Details

    • startDocument

      public abstract void startDocument() throws IOException
      Called before writing the stored fields of the document. writeField will be called for each stored field. Note that this is called even if the document has no stored fields.
      Throws:
      IOException
    • finishDocument

      public void finishDocument() throws IOException
      Called when a document and all its fields have been added.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, int value) throws IOException
      Writes a stored int value.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, long value) throws IOException
      Writes a stored long value.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, float value) throws IOException
      Writes a stored float value.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, double value) throws IOException
      Writes a stored double value.
      Throws:
      IOException
    • writeField

      public void writeField(FieldInfo info, DataInput value, int length) throws IOException
      Writes a stored binary value from a DataInput and a length.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, BytesRef value) throws IOException
      Writes a stored binary value.
      Throws:
      IOException
    • writeField

      public abstract void writeField(FieldInfo info, String value) throws IOException
      Writes a stored String value.
      Throws:
      IOException
    • finish

      public abstract void finish(int numDocs) throws IOException
      Called before close(), passing in the number of documents that were written. Note that this is intentionally redundant (equivalent to the number of calls to startDocument(), but a Codec should check that this is the case to detect the JRE bug described in LUCENE-1282.
      Throws:
      IOException
    • merge

      public int merge(MergeState mergeState) throws IOException
      Merges in the stored fields from the readers in mergeState. The default implementation skips over deleted documents, and uses startDocument(), writeField, and finish(int), returning the number of documents that were written. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).
      Throws:
      IOException
    • close

      public abstract void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException