src/Foundation/Data/Gimela.Data.DataStructures/BPlusTree/BPlusTreeNode.cs
/// <summary>
/// Find near-index of comparekey in leaf under this node. 
/// </summary>
/// <param name="compareKey">the key to look for</param>
/// <param name="inLeaf">the leaf where found</param>
/// <param name="lookPastOnly">If true then only look for a greater item, not an exact match.</param>
/// <returns>index of match in leaf</returns>
Find near-index of comparekey in leaf under this node.
Find near - index of comparekey in leaf under this node .
private int FindAtOrNextPositionInLeaf(string compareKey, out BPlusTreeNode inLeaf, bool lookPastOnly)
    {
      int keyPosition = this.FindAtOrNextPosition(compareKey, lookPastOnly);
      if (this.IsLeaf)
      {
        inLeaf = this;
        return keyPosition;
      }
      BPlusTreeNode child = this.LoadNodeAtIndex(keyPosition);
      return child.FindAtOrNextPositionInLeaf(compareKey, out inLeaf, lookPastOnly);
    }
private int FindAtOrNextPositionInLeaf ( string compareKey , out BPlusTreeNode inLeaf , bool lookPastOnly ) { int keyPosition = this . FindAtOrNextPosition ( compareKey , lookPastOnly ) ; if ( this . IsLeaf ) { inLeaf = this ; return keyPosition ; } BPlusTreeNode child = this . LoadNodeAtIndex ( keyPosition ) ; return child . FindAtOrNextPositionInLeaf ( compareKey , out inLeaf , lookPastOnly ) ; }
Find near-index of comparekey in leaf under this node.
Find near - index of comparekey in leaf under this node .
// 如果自己即是叶子节点 // 尝试在子节点中查找
index of match in leaf
index of match in leaf
compareKey
string
the key to look for
the key to look for
BPlusTreeNode
out
lookPastOnly
bool
If true then only look for a greater item, not an exact match.
If true then only look for a greater item not an exact match .
inLeaf
the leaf where found
the leaf where found