Class Lucene90CompressingStoredFieldsFormat
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.
-
Constructor Summary
ConstructorsConstructorDescriptionLucene90CompressingStoredFieldsFormat(String formatName, String segmentSuffix, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift) Create a newLucene90CompressingStoredFieldsFormat.Lucene90CompressingStoredFieldsFormat(String formatName, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift) Create a newLucene90CompressingStoredFieldsFormatwith an empty segment suffix. -
Method Summary
Modifier and TypeMethodDescriptionfieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) Returns aStoredFieldsReaderto load stored fields.fieldsWriter(Directory directory, SegmentInfo si, IOContext context) Returns aStoredFieldsWriterto write stored fields.toString()
-
Constructor Details
-
Lucene90CompressingStoredFieldsFormat
public Lucene90CompressingStoredFieldsFormat(String formatName, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift) Create a newLucene90CompressingStoredFieldsFormatwith an empty segment suffix.- See Also:
-
Lucene90CompressingStoredFieldsFormat
public Lucene90CompressingStoredFieldsFormat(String formatName, String segmentSuffix, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockShift) Create a newLucene90CompressingStoredFieldsFormat.formatNameis the name of the format. This name will be used in the file formats to performcodec header checks.segmentSuffixis the segment suffix. This suffix is added to the result file name only if it's not the empty string.The
compressionModeparameter 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 twoLucene90CompressingStoredFieldsFormats that have the same name but differentCompressionModes.chunkSizeis the minimum byte size of a chunk of documents. A value of1can make sense if there is redundancy across fields.maxDocsPerChunkis 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
chunkSizeshould 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 theStoredFieldsFormatcompressionMode- theCompressionModeto usechunkSize- the minimum number of bytes of a single chunk of stored documentsmaxDocsPerChunk- the maximum number of documents in a single chunkblockShift- the log in base 2 of number of chunks to store in an index block- See Also:
-
-
Method Details
-
fieldsReader
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException Description copied from class:StoredFieldsFormatReturns aStoredFieldsReaderto load stored fields.- Specified by:
fieldsReaderin classStoredFieldsFormat- Throws:
IOException
-
fieldsWriter
public StoredFieldsWriter fieldsWriter(Directory directory, SegmentInfo si, IOContext context) throws IOException Description copied from class:StoredFieldsFormatReturns aStoredFieldsWriterto write stored fields.- Specified by:
fieldsWriterin classStoredFieldsFormat- Throws:
IOException
-
toString
-