rtree / btree数据结构从子级到父级

时间:2016-01-07 19:23:46

标签: geospatial knn spatial-query r-tree

我是rtree / btree数据结构的新手。树的创建是一个自下而上的过程,但搜索节点/范围搜索/ knn搜索都是从上到下的过程。我正在使用knn搜索但想要做一些改进:我的数据是一个点的轨迹,它们在空间上彼此接近。为了搜索整个轨迹上每个点的KNN,我想首先搜索一个点,然后搜索其他点,我不想再次从根开始,而是想从结果开始第一点,并向他们的父母上去。这将使我能够避免搜索大量不必要的页面。这里的问题是如何在rtree / btree结构中从孩子到其父母的上层?我是否应该更改树创建过程以及何时发生拆分,请填写子项的parent []属性?这个问题还有其他更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

你可以:

  1. 在子节点中存储指向父节点的指针,以了解如何在节点结构中向上移动。因此,在查询之间存储一些指向最后一个叶节点的指针,并从那里使用指向父节点的指针向上移动,检查父节点,然后再次向上移动等,直到应该选择不同子树的节点。
  2. 仅存储指向每个节点中子节点的指针。然后在查询之间保存用于从根到最后一个查询中的叶子的节点的整个路径。然后有一个最后一个路径,你可以在这个集合中倒退,它代表从最后一个查询中使用的叶子向上移动到你应该选择不同子树的节点。