Package org.apache.lucene.codecs.memory
Class DirectPostingsFormat
- java.lang.Object
-
- org.apache.lucene.codecs.PostingsFormat
-
- org.apache.lucene.codecs.memory.DirectPostingsFormat
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
public final class DirectPostingsFormat extends PostingsFormat
WrapsLucene90PostingsFormat
format for on-disk storage, but then at read time loads and stores all terms and 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
TermsEnum.ord()
andTermsEnum.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.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.codecs.PostingsFormat
EMPTY
-
-
Constructor Summary
Constructors Constructor Description DirectPostingsFormat()
DirectPostingsFormat(int minSkipCount, int lowFreqCutoff)
minSkipCount is how many terms in a row must have the same prefix before we put a skip pointer down.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FieldsConsumer
fieldsConsumer(SegmentWriteState state)
FieldsProducer
fieldsProducer(SegmentReadState state)
-
Methods inherited from class org.apache.lucene.codecs.PostingsFormat
availablePostingsFormats, forName, getName, reloadPostingsFormats, toString
-
-
-
-
Constructor Detail
-
DirectPostingsFormat
public DirectPostingsFormat()
-
DirectPostingsFormat
public DirectPostingsFormat(int minSkipCount, int lowFreqCutoff)
minSkipCount is how many terms in a row must have the same prefix before we put a skip pointer down. Terms with docFreq <= lowFreqCutoff will use a single int[] to hold all docs, freqs, position and offsets; terms with higher docFreq will use separate arrays.
-
-
Method Detail
-
fieldsConsumer
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException
- Specified by:
fieldsConsumer
in classPostingsFormat
- Throws:
IOException
-
fieldsProducer
public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException
- Specified by:
fieldsProducer
in classPostingsFormat
- Throws:
IOException
-
-