Class BKDReader.IndexTree

java.lang.Object
org.apache.lucene.util.bkd.BKDReader.IndexTree
All Implemented Interfaces:
Cloneable
Enclosing class:
BKDReader

public class BKDReader.IndexTree extends Object implements 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 Details

    • nodeID

      private int nodeID
    • level

      private int level
    • splitDim

      private int splitDim
    • splitPackedValueStack

      private final byte[][] splitPackedValueStack
    • in

      private final IndexInput in
    • 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 Details

    • IndexTree

      IndexTree()
    • IndexTree

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

    • 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 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)