在动态数据集上使用Locality Sensitive Hashing

时间:2015-09-06 03:36:34

标签: indexing string-matching nearest-neighbor locality-sensitive-hash

我正在使用LSH作为数据库记录,我正在创建一个索引(不是数据库索引,一个简单的hashmap),其中类似的记录被阻塞到同一个桶中。该数据库可能包含数百万条记录。我的问题与我在下面发布的设计有关。

enter image description here

首先,我将使用可执行LSH的数据库创建索引。但是当一个新记录插入到数据库中时,我必须将该记录索引到索引中。我怎么能用LSH做到这一点? LSH可以将该记录分配给具有类似记录的存储桶吗? LSH是否支持更新数据集?

1 个答案:

答案 0 :(得分:2)

我会使用E2LSH(由Andoni开发,这是一个很棒的家伙),它是用C ++编写的。在项目的网站上,提到:

  

最新(不完全)LSH算法(2014):这些算法通过使用依赖于数据的散列来实现比传统LSH算法更好的性能。它们改进了Hamming和Euclidean空间的经典LSH算法。然而,与传统的LSH算法相比,这些算法不是动态的,后者使用与数据无关的散列,因此允许更新点集。

如果您不想使用图书馆,但由于某种原因您希望开发自己的图书馆,我建议您先学习manual