Class Lucene60PointsFormat
- java.lang.Object
-
- org.apache.lucene.codecs.PointsFormat
-
- org.apache.lucene.backward_codecs.lucene60.Lucene60PointsFormat
-
public class Lucene60PointsFormat extends PointsFormat
Lucene 6.0 point format, which encodes dimensional values in a block KD-tree structure for fast 1D range and N dimensional shape intersection filtering. See this paper for details.This data structure is written as a series of blocks on disk, with an in-memory perfectly balanced binary tree of split values referencing those blocks at the leaves.
The
.dim
file has both blocks and the index split values, for each field. The file starts withCodecUtil.writeIndexHeader(org.apache.lucene.store.DataOutput, java.lang.String, int, byte[], java.lang.String)
.The blocks are written like this:
- count (vInt)
- delta-docID (vInt) count (delta coded docIDs, in sorted order)
- packedValuecount (the
byte[]
value of each dimension packed into a singlebyte[]
)
After all blocks for a field are written, then the index is written:
- numDims (vInt)
- maxPointsInLeafNode (vInt)
- bytesPerDim (vInt)
- count (vInt)
- packed index (byte[])
The packed index uses hierarchical delta and prefix coding to compactly encode the file pointer for all leaf blocks, once the tree is traversed, as well as the split dimension and split value for each inner node of the tree.
After all fields blocks + index data are written,
CodecUtil.writeFooter(org.apache.lucene.store.IndexOutput)
writes the checksum.The
.dii
file records the file pointer in the.dim
file where each field's index data was written. It starts withCodecUtil.writeIndexHeader(org.apache.lucene.store.DataOutput, java.lang.String, int, byte[], java.lang.String)
, then has:- fieldCount (vInt)
- (fieldNumber (vInt), fieldFilePointer (vLong))fieldCount
After all fields blocks + index data are written,
CodecUtil.writeFooter(org.apache.lucene.store.IndexOutput)
writes the checksum.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description static String
DATA_EXTENSION
Filename extension for the leaf blocksstatic String
INDEX_EXTENSION
Filename extension for the index per field-
Fields inherited from class org.apache.lucene.codecs.PointsFormat
EMPTY
-
-
Constructor Summary
Constructors Constructor Description Lucene60PointsFormat()
Sole constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PointsReader
fieldsReader(SegmentReadState state)
PointsWriter
fieldsWriter(SegmentWriteState state)
-
-
-
Field Detail
-
DATA_EXTENSION
public static final String DATA_EXTENSION
Filename extension for the leaf blocks- See Also:
- Constant Field Values
-
INDEX_EXTENSION
public static final String INDEX_EXTENSION
Filename extension for the index per field- See Also:
- Constant Field Values
-
-
Method Detail
-
fieldsWriter
public PointsWriter fieldsWriter(SegmentWriteState state) throws IOException
- Specified by:
fieldsWriter
in classPointsFormat
- Throws:
IOException
-
fieldsReader
public PointsReader fieldsReader(SegmentReadState state) throws IOException
- Specified by:
fieldsReader
in classPointsFormat
- Throws:
IOException
-
-