【问题标题】:Is there a disk based nearest neighbour data structure?是否有基于磁盘的最近邻数据结构?
【发布时间】:2011-05-11 10:23:23
【问题描述】:

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

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

【问题讨论】:

    标签: data-structures nearest-neighbor


    【解决方案1】:

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

    【讨论】:

    • 这不会有效,因为来自记录的附加信息是整个记录(想想文档或图像之间的距离)。我希望尽量减少磁盘访问,据我所知,覆盖树并没有为此特别优化。
    • 我想我不明白。文档或图像不能存储在磁盘上,索引保存计算的距离和指向文档或图像的磁盘位置的指针吗?
    • 我希望能够最大限度地减少磁盘访问次数,因为每次计算距离都需要从数据库中加载一个完整的文档。在实践中,具有您的提示性能的覆盖树满足了我的需求。
    • 为什么周期性地“写入磁盘”和“从磁盘检索”某些数据集不是一个好主意?
    猜你喜欢
    • 2015-10-13
    • 2011-12-06
    • 1970-01-01
    • 2013-08-26
    • 2011-07-02
    • 2015-11-16
    • 2012-09-19
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多