Class BKDReader.IndexTree

  • All Implemented Interfaces:
    java.lang.Cloneable
    Enclosing class:
    BKDReader

    public class BKDReader.IndexTree
    extends java.lang.Object
    implements java.lang.Cloneable
    Used to walk the off-heap index. The format takes advantage of the limited access pattern to the BKD tree at search time, i.e. starting at the root node and recursing downwards one child at a time.
    • Field Detail

      • nodeID

        private int nodeID
      • level

        private int level
      • splitDim

        private int splitDim
      • splitPackedValueStack

        private final byte[][] splitPackedValueStack
      • leafBlockFPStack

        private final long[] leafBlockFPStack
      • rightNodePositions

        private final int[] rightNodePositions
      • splitDims

        private final int[] splitDims
      • negativeDeltas

        private final boolean[] negativeDeltas
      • splitValuesStack

        private final byte[][] splitValuesStack
      • scratch

        private final BytesRef scratch
    • Constructor Detail

      • IndexTree

        IndexTree()
      • IndexTree

        private IndexTree​(IndexInput in,
                          int nodeID,
                          int level)
    • Method Detail

      • pushLeft

        public void pushLeft()
      • clone

        public BKDReader.IndexTree clone()
        Clone, but you are not allowed to pop up past the point where the clone happened.
        Overrides:
        clone in class java.lang.Object
      • pushRight

        public void pushRight()
      • pop

        public void pop()
      • isLeafNode

        public boolean isLeafNode()
      • nodeExists

        public boolean nodeExists()
      • getNodeID

        public int getNodeID()
      • getSplitPackedValue

        public byte[] getSplitPackedValue()
      • getSplitDim

        public int getSplitDim()
        Only valid after pushLeft or pushRight, not pop!
      • getSplitDimValue

        public BytesRef getSplitDimValue()
        Only valid after pushLeft or pushRight, not pop!
      • getLeafBlockFP

        public long getLeafBlockFP()
        Only valid after pushLeft or pushRight, not pop!
      • getNumLeaves

        public int getNumLeaves()
        Return the number of leaves below the current node.
      • getNumLeavesSlow

        private int getNumLeavesSlow​(int node)
      • readNodeData

        private void readNodeData​(boolean isLeft)