如何在没有O ^ 2问题的Ruby中找到一串二进制二进制文件的最接近对(汉明距离)?

Wil*_*amf 9 ruby kdtree mongodb hamming-distance

我有一个包含大约100万个文档的MongoDB.这些文档都有一个字符串,表示一个1位和0位的256位bin,如:

0110101010101010110101010101

理想情况下,我想查询近二进制匹配.这意味着,如果两个文件具有以下数字.是的,这是汉明距离.

Mongo目前不支持此功能.所以,我不得不在应用程序层中这样做.

因此,鉴于此,我试图找到一种方法来避免在文档之间进行单独的汉明距离比较.这使得时间基本上不可能完成.

我有很多内存.并且,在ruby中,似乎有一个伟大的宝石(算法)可以创建许多树,我似乎没有任何工作(还)可以减少我需要做的查询数量.

理想情况下,我想制作100万个查询,找到接近重复的字符串,并能够更新它们以反映这一点.

任何人的想法将不胜感激.

Wil*_*amf 6

我最终将所有文档检索到内存中..(带有id和字符串的子集).

然后,我使用BK树来比较字符串.