Class Lucene50CompressingStoredFieldsFormat

java.lang.Object
org.apache.lucene.codecs.StoredFieldsFormat
org.apache.lucene.backward_codecs.lucene50.compressing.Lucene50CompressingStoredFieldsFormat

public class Lucene50CompressingStoredFieldsFormat extends StoredFieldsFormat
A StoredFieldsFormat that compresses documents in chunks in order to improve the compression ratio.

For a chunk size of chunkSize bytes, this StoredFieldsFormat does not support documents larger than (231 - chunkSize) bytes.

For optimal performance, you should use a MergePolicy that returns segments that have the biggest byte size first.

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

    • formatName

      protected final String formatName
      format name
    • segmentSuffix

      protected final String segmentSuffix
      segment suffix
    • compressionMode

      protected final CompressionMode compressionMode
      compression mode
    • chunkSize

      protected final int chunkSize
      chunk size
    • maxDocsPerChunk

      protected final int maxDocsPerChunk
      max docs per chunk
    • blockShift

      protected final int blockShift
      block shift
  • Constructor Details

    • Lucene50CompressingStoredFieldsFormat

      public Lucene50CompressingStoredFieldsFormat(String formatName, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift)
      Create a new Lucene50CompressingStoredFieldsFormat with an empty segment suffix.
      See Also:
    • Lucene50CompressingStoredFieldsFormat

      public Lucene50CompressingStoredFieldsFormat(String formatName, String segmentSuffix, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift)
      Create a new Lucene50CompressingStoredFieldsFormat.

      formatName is the name of the format. This name will be used in the file formats to perform codec header checks.

      segmentSuffix is the segment suffix. This suffix is added to the result file name only if it's not the empty string.

      The compressionMode parameter allows you to choose between compression algorithms that have various compression and decompression speeds so that you can pick the one that best fits your indexing and searching throughput. You should never instantiate two Lucene50CompressingStoredFieldsFormats that have the same name but different CompressionModes.

      chunkSize is the minimum byte size of a chunk of documents. A value of 1 can make sense if there is redundancy across fields. maxDocsPerChunk is an upperbound on how many docs may be stored in a single chunk. This is to bound the cpu costs for highly compressible data.

      Higher values of chunkSize should improve the compression ratio but will require more memory at indexing time and might make document loading a little slower (depending on the size of your OS cache compared to the size of your index).

      Parameters:
      formatName - the name of the StoredFieldsFormat
      compressionMode - the CompressionMode to use
      chunkSize - the minimum number of bytes of a single chunk of stored documents
      maxDocsPerChunk - the maximum number of documents in a single chunk
      blockShift - the log in base 2 of number of chunks to store in an index block
      See Also:
  • Method Details