Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 是否存在基于磁盘的最近邻数据结构?_Data Structures_Nearest Neighbor - Fatal编程技术网

Data structures 是否存在基于磁盘的最近邻数据结构?

Data structures 是否存在基于磁盘的最近邻数据结构?,data-structures,nearest-neighbor,Data Structures,Nearest Neighbor,我有一个数据集,我需要找到K个最近的邻居,或者距离d内的所有邻居。数据集定义了自定义距离,但不是欧几里德距离 我以前用过,主要是盖树。但是,在这种情况下,我的数据集将大于可用内存。那么,是否有任何数据结构可用于磁盘存储数据集上的最近邻?此操作的良好数据库索引也很有用。您可以使用覆盖树来保存指向磁盘数据集的指针。指针将包含相对记录编号以及记录中允许您遍历树的任何附加信息。这将是无效的,因为记录中的附加信息是整个记录(想想文档或图像之间的距离)。我希望尽量减少磁盘访问,而据我所知,封面树并不是专门为

我有一个数据集,我需要找到K个最近的邻居,或者距离d内的所有邻居。数据集定义了自定义距离,但不是欧几里德距离


我以前用过,主要是盖树。但是,在这种情况下,我的数据集将大于可用内存。那么,是否有任何数据结构可用于磁盘存储数据集上的最近邻?此操作的良好数据库索引也很有用。

您可以使用覆盖树来保存指向磁盘数据集的指针。指针将包含相对记录编号以及记录中允许您遍历树的任何附加信息。

这将是无效的,因为记录中的附加信息是整个记录(想想文档或图像之间的距离)。我希望尽量减少磁盘访问,而据我所知,封面树并不是专门为此而优化的。我想我不明白。难道文档或图像不能存储在磁盘上,而索引不能保存计算出的距离和指向文档或图像磁盘位置的指针吗?我希望能够减少磁盘访问的次数,因为每次计算距离都至少需要从数据库中加载一整份文档。实际上,具有提示性能的覆盖树满足了我的需要。为什么定期“写入磁盘”和“从磁盘检索”某些数据集不是一个好主意?