simhash 算法简单又高效.
但是问题来了,如何对亿级 hash 进行存储,同时达到高效 查找的目的
目前的做法:
将 64bit 的 hash 分为 8 片, 然后分别以每片的值做 key,其余所有作为 set 的 value 存储在 redis 中,
每次新来一个 hash 就将其分片,去 redis 查 8 次,然后遍历所有 再进行抑或得到海明距离小于 2 的结果.
这样下来 每次查询都需要 100ms 左右, 请问有更好的方式么?
1
solos 2017-03-23 19:39:00 +08:00
可以分表吧
|
2
paradoxs 2017-03-23 19:42:42 +08:00 via iPhone
hadoop
|
3
xiusedelang 2017-03-23 19:46:47 +08:00 via Android
这个查询技巧在谷歌的论文里也给出来了吧
|
4
mooncakejs 2017-03-23 20:32:11 +08:00 via iPhone
用 8 个 redis
|
5
wzha2008 2017-03-24 10:46:03 +08:00
|
7
996635 OP |