2010-11-17 104 views
4

我有一個數據集,我需要找到K個最近的鄰居或距離d內的所有鄰居。數據集具有已定義的自定義距離,但它不是歐幾里德距離。是否有基於磁盤的最近鄰數據結構?

我以前用過metric trees,主要是覆蓋樹。但是,在這種情況下,我的數據集將大於可用內存。那麼,是否有任何數據結構可以用於磁盤存儲數據集中的最近鄰居?這個操作的一個好的數據庫索引也是有用的。

回答

1

您可以使用封面樹來保存指向您的磁盤數據集的指針。指針將包含相對記錄編號以及來自記錄的任何其他信息,以便您遍歷樹。

+0

這樣做效率不高,因爲記錄中的附加信息是整個記錄(考慮文檔或圖像之間的距離)。據我所知,我希望儘量減少磁盤訪問,並且封面樹並沒有爲此專門進行優化。 – 2010-11-17 18:34:32

+0

我想我不明白。不能將文檔或圖像存儲在磁盤上,並且索引會保存計算出的距離和指向文檔或圖像的磁盤位置的指針? – 2010-11-17 19:28:51

+0

我希望能夠最大限度地減少磁盤訪問次數,因爲每次距離計算都需要至少從數據庫中加載一個完整文檔。在實踐中,具有提示性能的封面樹滿足我的需求。 – 2010-11-21 21:13:28

相關問題