Class DirectPostingsFormat
Wraps Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat format for on-disk storage, but then at read time loads and stores all terms & postings directly in RAM as byte[], int[].
WARNING: This is exceptionally RAM intensive: it makes no effort to compress the postings data, storing terms as separate byte[] and postings as separate int[], but as a result it gives substantial increase in search performance.
This postings format supports Lucene.Net.Index.TermsEnum.Ord and SeekExact(long).
Because this holds all term bytes as a single byte[], you cannot have more than 2.1GB worth of term bytes in a single segment.
Note
This API is experimental and might change in incompatible ways in the next release.
Inherited Members
Namespace: Lucene.Net.Codecs.Memory
Assembly: Lucene.Net.Codecs.dll
Syntax
[PostingsFormatName("Direct")]
public sealed class DirectPostingsFormat : PostingsFormat
Constructors
DirectPostingsFormat()
Wraps Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat format for on-disk storage, but then at read time loads and stores all terms & postings directly in RAM as byte[], int[].
WARNING: This is exceptionally RAM intensive: it makes no effort to compress the postings data, storing terms as separate byte[] and postings as separate int[], but as a result it gives substantial increase in search performance.
This postings format supports Lucene.Net.Index.TermsEnum.Ord and SeekExact(long).
Because this holds all term bytes as a single byte[], you cannot have more than 2.1GB worth of term bytes in a single segment.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
public DirectPostingsFormat()
DirectPostingsFormat(int, int)
minSkipCount
is how many terms in a row must have the
same prefix before we put a skip pointer down. Terms
with docFreq less than or equal lowFreqCutoff
will use a single int[]
to hold all docs, freqs, position and offsets; terms
with higher docFreq will use separate arrays.
Declaration
public DirectPostingsFormat(int minSkipCount, int lowFreqCutoff)
Parameters
Type | Name | Description |
---|---|---|
int | minSkipCount | |
int | lowFreqCutoff |
Methods
FieldsConsumer(SegmentWriteState)
Writes a new segment.
Declaration
public override FieldsConsumer FieldsConsumer(SegmentWriteState state)
Parameters
Type | Name | Description |
---|---|---|
SegmentWriteState | state |
Returns
Type | Description |
---|---|
FieldsConsumer |
Overrides
FieldsProducer(SegmentReadState)
Reads a segment. NOTE: by the time this call returns, it must hold open any files it will need to use; else, those files may be deleted. Additionally, required files may be deleted during the execution of this call before there is a chance to open them. Under these circumstances an IOException should be thrown by the implementation. IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.
Declaration
public override FieldsProducer FieldsProducer(SegmentReadState state)
Parameters
Type | Name | Description |
---|---|---|
SegmentReadState | state |
Returns
Type | Description |
---|---|
FieldsProducer |