我最近在R-tree及其变体上阅读论文和代码:线性,二次,R * -tree,以及R树包装(STR)。在我看来,不同的技术在树创建,范围搜索和knn搜索的时间复杂性方面是不同的。 STR树似乎比其他人更好。然而,这些论文来自上个世纪。我怀疑近20年后,目前最好的R树变种是什么?
答案 0 :(得分:4)
另一个更新的树是X-tree(也基于R-Tree)。
如果您正在寻找一般空间索引,而不仅仅是R-Trees,我可以推荐PH-Tree。它可以轻松地与R-Tree变体竞争矩形或范围查询,具有相当好的kNN查询支持(仅比21维度的Cover-Tree慢50%),它可以很好地扩展到大型和/或集群数据集,并且相当节省空间。最好的事情可能是它具有出色的更新性能,插入/移动/删除只需要比查找更长的时间。另一个优点是它不需要重新平衡,这意味着任何更新都不会超过2个节点。
缺点:
答案 1 :(得分:2)
R * - 树被证明效果非常好并且仍然是最佳变体。
诸如STR之类的批量加载技术是更快(更好)构建初始树而不是逐个插入对象的绝佳补充。
通常,您需要一个带有STR批量加载的R * -tree。