我有一些对象被64位哈希值“汇总”。 该收藏集大且正在增长。
我们可以计算这些对象之间的距离,如下所示:
distance = number_of_bits_set(hash1 ^ hash2)
例如:
Object1 hash is 00001110
Object2 hash is 00111000
Object3 hash is 00011111
距离将是:
Dist(Object1, Object2) = Bits(00001110 ^ 00111000) = 4
Dist(Object1, Object3) = Bits(00001110 ^ 00011111) =
Dist(Object2, Object3) = Bits(00111000 ^ 00011111) = 4
正如我们在这里看到的,Object1 / 2与Object2 / 3的距离相同,但是Object 1/3的距离短得多。
我需要建立一个系统来查找与给定对象最接近的n个对象。
对象数以百万计,因此不能选择强制使用和存储所有组合。
我想不出任何有意义的分区,因为我们正在处理位数。 同时,我可以想象这不是一个新问题,并且必须对该主题进行一些研究。
有人能对此有所启发,和/或将我指向正确的方向吗?