注意:我知道这不是高性能查询。 这只是对如何进行搜索的好奇。
在 mongo 中,我存储代表我插入的对象的哈希值。
{
"a": 694695,
"b": 24654,
"t": 1693920660000,
...
'hash': "humX124"
},
当我搜索某个对象时,我首先计算哈希值并在数据库中查找哈希值。
利用哈希,如何过滤掉相似的项?
相似度可以通过计算汉明距离/编辑距离来找到。 https://en.wikipedia.org/wiki/Edit_distance
高编辑距离 = 非常不同的哈希值 = 非常不同的对象
低编辑距离 = 相似的哈希值 = 相似的对象
我们是否可以通过将 EditDistance(String,String) 函数和编辑距离最小过滤器传递给 mongo 查询来提出一些 mongo 查询来查询相似的项目?
示例
散列:hum123、humX124、dog345、donkey566
正在搜索类似的项目:hum024
最大编辑距离:2
result :具有哈希值 hum123 和 humX124
的对象谢谢
您可以使用模糊哈希为相似的数据生成相同的哈希。这样你就可以使用常规的 mongodb 查询来查询哈希值。