org.apache.lucene.codecs.compressing

## Class CompressingStoredFieldsWriter

- java.lang.Object
- - org.apache.lucene.codecs.StoredFieldsWriter
  - - org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter

All Implemented Interfaces:
  Closeable, AutoCloseable

    public final class CompressingStoredFieldsWriter
    extends StoredFieldsWriter

`StoredFieldsWriter` impl for `CompressingStoredFieldsFormat`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.codecs.StoredFieldsWriter

`StoredFieldsWriter.MergeVisitor`

### Field Summary

Fields
`static String` `FIELDS_EXTENSION` Extension of stored fields file
`static String` `FIELDS_INDEX_EXTENSION` Extension of stored fields index file

### Constructor Summary

Constructors
Constructor and Description
`CompressingStoredFieldsWriter(Directory directory, SegmentInfo si, String segmentSuffix, IOContext context, String formatName, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockSize)` Sole constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()`
`void` `finish(FieldInfos fis, int numDocs)` Called before `StoredFieldsWriter.close()`, passing in the number of documents that were written.
`void` `finishDocument()` Called when a document and all its fields have been added.
`int` `merge(MergeState mergeState)` Merges in the stored fields from the readers in `mergeState`.
`void` `startDocument()` Called before writing the stored fields of the document.
`void` `writeField(FieldInfo info, IndexableField field)` Writes a single stored field.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FIELDS_EXTENSION

    public static final String FIELDS_EXTENSION

Extension of stored fields file

See Also:
  Constant Field Values

#### FIELDS_INDEX_EXTENSION

    public static final String FIELDS_INDEX_EXTENSION

Extension of stored fields index file

See Also:
  Constant Field Values

### Constructor Detail

#### CompressingStoredFieldsWriter

    public CompressingStoredFieldsWriter(Directory directory,
                                         SegmentInfo si,
                                         String segmentSuffix,
                                         IOContext context,
                                         String formatName,
                                         CompressionMode compressionMode,
                                         int chunkSize,
                                         int maxDocsPerChunk,
                                         int blockSize)
                                  throws IOException

Sole constructor.

Throws:
  `IOException`

### Method Detail

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in class `StoredFieldsWriter`
Throws:
  `IOException`

#### startDocument

    public void startDocument()
                       throws IOException

Description copied from class: `StoredFieldsWriter`
Called before writing the stored fields of the document. `StoredFieldsWriter.writeField(FieldInfo, IndexableField)` will be called for each stored field. Note that this is called even if the document has no stored fields.

Specified by:
  `startDocument` in class `StoredFieldsWriter`
Throws:
  `IOException`

#### finishDocument

    public void finishDocument()
                        throws IOException

Description copied from class: `StoredFieldsWriter`
Called when a document and all its fields have been added.

Overrides:
  `finishDocument` in class `StoredFieldsWriter`
Throws:
  `IOException`

#### writeField

    public void writeField(FieldInfo info,
                           IndexableField field)
                    throws IOException

Description copied from class: `StoredFieldsWriter`
Writes a single stored field.

Specified by:
  `writeField` in class `StoredFieldsWriter`
Throws:
  `IOException`

#### finish

    public void finish(FieldInfos fis,
                       int numDocs)
                throws IOException

Description copied from class: `StoredFieldsWriter`
Called before `StoredFieldsWriter.close()`, passing in the number of documents that were written. Note that this is intentionally redundant (equivalent to the number of calls to `StoredFieldsWriter.startDocument()`, but a Codec should check that this is the case to detect the JRE bug described in LUCENE-1282.

Specified by:
  `finish` in class `StoredFieldsWriter`
Throws:
  `IOException`

#### merge

    public int merge(MergeState mergeState)
              throws IOException

Description copied from class: `StoredFieldsWriter`
Merges in the stored fields from the readers in `mergeState`. The default implementation skips over deleted documents, and uses `StoredFieldsWriter.startDocument()`, `StoredFieldsWriter.writeField(FieldInfo, IndexableField)`, and `StoredFieldsWriter.finish(FieldInfos, int)`, returning the number of documents that were written. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).

Overrides:
  `merge` in class `StoredFieldsWriter`
Throws:
  `IOException`