Class SimpleTextBKDReader
java.lang.Object
org.apache.lucene.index.PointValues
org.apache.lucene.codecs.simpletext.SimpleTextBKDReader
- All Implemented Interfaces:
Accountable
Forked from
BKDReader and simplified/specialized for SimpleText's usage-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classUsed to track all state for a single call tointersect(org.apache.lucene.index.PointValues.IntersectVisitor).Nested classes/interfaces inherited from class org.apache.lucene.index.PointValues
PointValues.IntersectVisitor, PointValues.Relation -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final int(package private) final int(package private) final int(package private) final IndexInput(package private) final long[]private final int(package private) final byte[](package private) final int(package private) final byte[](package private) final int(package private) final intprotected final intprotected final int(package private) final longprivate final byte[](package private) final intFields inherited from class org.apache.lucene.index.PointValues
MAX_DIMENSIONS, MAX_INDEX_DIMENSIONS, MAX_NUM_BYTESFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
ConstructorsConstructorDescriptionSimpleTextBKDReader(IndexInput in, int numDims, int numIndexDims, int maxPointsInLeafNode, int bytesPerDim, long[] leafBlockFPs, byte[] splitPackedValues, byte[] minPackedValue, byte[] maxPackedValue, long pointCount, int docCount) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddAll(SimpleTextBKDReader.IntersectState state, int nodeID) Fast path: this is called when the query box fully encompasses all cells under this node.voidcopySplitValue(int nodeID, byte[] splitPackedValue) Copies the split value for this node into the provided byte arrayprivate longestimatePointCount(SimpleTextBKDReader.IntersectState state, int nodeID, byte[] cellMinPacked, byte[] cellMaxPacked) longEstimate the number of points that would be visited byPointValues.intersect(org.apache.lucene.index.PointValues.IntersectVisitor)with the givenPointValues.IntersectVisitor.intReturns the number of bytes per dimensionintReturns the total number of documents that have indexed at least one point.Create a newSimpleTextBKDReader.IntersectStatebyte[]Returns maximum value for each dimension, packed, or null ifPointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)is0byte[]Returns minimum value for each dimension, packed, or null ifPointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)is0intReturns how many dimensions are represented in the valuesintReturns how many dimensions are used for the indexprivate voidintersect(SimpleTextBKDReader.IntersectState state, int nodeID, byte[] cellMinPacked, byte[] cellMaxPacked) voidintersect(PointValues.IntersectVisitor visitor) Finds all documents and points matching the provided visitor.booleanisLeafNode(int nodeID) private intparseInt(BytesRefBuilder scratch, BytesRef prefix) longReturn the memory usage of this object in bytes.private voidreadCommonPrefixes(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in) private int(package private) intreadDocIDs(IndexInput in, long blockFP, int[] docIDs) private voidreadLine(IndexInput in, BytesRefBuilder scratch) longsize()Returns the total number of indexed points across all documents.private booleanstartsWith(BytesRefBuilder scratch, BytesRef prefix) private StringstripPrefix(BytesRefBuilder scratch, BytesRef prefix) private voidvisitCompressedDocValues(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in, int[] docIDs, int count, PointValues.IntersectVisitor visitor, int compressedDim) (package private) voidvisitDocIDs(IndexInput in, long blockFP, PointValues.IntersectVisitor visitor) (package private) voidvisitDocValues(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in, int[] docIDs, int count, PointValues.IntersectVisitor visitor) voidvisitLeafBlockValues(int nodeID, SimpleTextBKDReader.IntersectState state) Visits all docIDs and packed values in a single leaf blockMethods inherited from class org.apache.lucene.index.PointValues
estimateDocCount, getDocCount, getMaxPackedValue, getMinPackedValue, sizeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
Field Details
-
splitPackedValues
private final byte[] splitPackedValues -
leafBlockFPs
final long[] leafBlockFPs -
leafNodeOffset
private final int leafNodeOffset -
numDims
final int numDims -
numIndexDims
final int numIndexDims -
bytesPerDim
final int bytesPerDim -
bytesPerIndexEntry
final int bytesPerIndexEntry -
in
-
maxPointsInLeafNode
final int maxPointsInLeafNode -
minPackedValue
final byte[] minPackedValue -
maxPackedValue
final byte[] maxPackedValue -
pointCount
final long pointCount -
docCount
final int docCount -
version
final int version -
packedBytesLength
protected final int packedBytesLength -
packedIndexBytesLength
protected final int packedIndexBytesLength
-
-
Constructor Details
-
SimpleTextBKDReader
public SimpleTextBKDReader(IndexInput in, int numDims, int numIndexDims, int maxPointsInLeafNode, int bytesPerDim, long[] leafBlockFPs, byte[] splitPackedValues, byte[] minPackedValue, byte[] maxPackedValue, long pointCount, int docCount) throws IOException - Throws:
IOException
-
-
Method Details
-
intersect
Description copied from class:PointValuesFinds all documents and points matching the provided visitor. This method does not enforce live documents, so it's up to the caller to test whether each document is deleted, if necessary.- Specified by:
intersectin classPointValues- Throws:
IOException
-
addAll
Fast path: this is called when the query box fully encompasses all cells under this node.- Throws:
IOException
-
getIntersectState
Create a newSimpleTextBKDReader.IntersectState -
visitLeafBlockValues
public void visitLeafBlockValues(int nodeID, SimpleTextBKDReader.IntersectState state) throws IOException Visits all docIDs and packed values in a single leaf block- Throws:
IOException
-
visitDocIDs
void visitDocIDs(IndexInput in, long blockFP, PointValues.IntersectVisitor visitor) throws IOException - Throws:
IOException
-
readDocIDs
- Throws:
IOException
-
visitDocValues
void visitDocValues(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in, int[] docIDs, int count, PointValues.IntersectVisitor visitor) throws IOException - Throws:
IOException
-
visitCompressedDocValues
private void visitCompressedDocValues(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in, int[] docIDs, int count, PointValues.IntersectVisitor visitor, int compressedDim) throws IOException - Throws:
IOException
-
readCompressedDim
- Throws:
IOException
-
readCommonPrefixes
private void readCommonPrefixes(int[] commonPrefixLengths, byte[] scratchPackedValue, IndexInput in) throws IOException - Throws:
IOException
-
intersect
private void intersect(SimpleTextBKDReader.IntersectState state, int nodeID, byte[] cellMinPacked, byte[] cellMaxPacked) throws IOException - Throws:
IOException
-
estimatePointCount
Description copied from class:PointValuesEstimate the number of points that would be visited byPointValues.intersect(org.apache.lucene.index.PointValues.IntersectVisitor)with the givenPointValues.IntersectVisitor. This should run many times faster thanPointValues.intersect(IntersectVisitor).- Specified by:
estimatePointCountin classPointValues
-
estimatePointCount
private long estimatePointCount(SimpleTextBKDReader.IntersectState state, int nodeID, byte[] cellMinPacked, byte[] cellMaxPacked) -
copySplitValue
public void copySplitValue(int nodeID, byte[] splitPackedValue) Copies the split value for this node into the provided byte array -
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-
getMinPackedValue
public byte[] getMinPackedValue()Description copied from class:PointValuesReturns minimum value for each dimension, packed, or null ifPointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)is0- Specified by:
getMinPackedValuein classPointValues
-
getMaxPackedValue
public byte[] getMaxPackedValue()Description copied from class:PointValuesReturns maximum value for each dimension, packed, or null ifPointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)is0- Specified by:
getMaxPackedValuein classPointValues
-
getNumDimensions
public int getNumDimensions()Description copied from class:PointValuesReturns how many dimensions are represented in the values- Specified by:
getNumDimensionsin classPointValues
-
getNumIndexDimensions
public int getNumIndexDimensions()Description copied from class:PointValuesReturns how many dimensions are used for the index- Specified by:
getNumIndexDimensionsin classPointValues
-
getBytesPerDimension
public int getBytesPerDimension()Description copied from class:PointValuesReturns the number of bytes per dimension- Specified by:
getBytesPerDimensionin classPointValues
-
size
public long size()Description copied from class:PointValuesReturns the total number of indexed points across all documents.- Specified by:
sizein classPointValues
-
getDocCount
public int getDocCount()Description copied from class:PointValuesReturns the total number of documents that have indexed at least one point.- Specified by:
getDocCountin classPointValues
-
isLeafNode
public boolean isLeafNode(int nodeID) -
parseInt
-
stripPrefix
-
startsWith
-
readLine
- Throws:
IOException
-