现有的数据库(最好是嵌入式数据库)是否支持大型小型多维搜索?



我想在支持多维搜索(例如KDTree或RTree)的数据库之上构建一个c++应用程序。启用r树的SQLite最多只支持5个维度,这比我需要的要小得多。任何建议吗?

那么,查询实际上使意义这种方式?欧氏距离是二维和三维几何数据的合理距离。但即使对于"时空"来说,也没有的意义。因为1秒和1米是完全不同的。

首先决定哪种类型的距离是合理的,然后考虑哪种指标是合适的。根据您的查询,您将需要非常不同的索引。

这里没有"一刀切"。在一个任务和一个数据集上表现良好的索引,在另一个任务和数据集上可能比线性扫描更差——特别是在高维情况下。

动态数据和静态数据又是两种截然不同的东西。动态维护一个平衡良好的树比用STR批量加载R-Tree并仅用窗口查询查询要困难得多。这只是几行代码,一个好的程序员应该能在几天内完成。

你可能想要阅读高维数据的问题,例如这篇关于"维度的诅咒"的相当平衡的文章(有很多文章说"你不能索引高维数据"作为不这样做的借口,这篇文章至少给了你一些例子,告诉你什么时候可以,什么时候不可以)。

最新更新