如何处理数据库中的集合相似度

时间:2014-09-12 23:12:02

标签: database set scalability similarity duplicate-data

我有一个有趣的问题。我们收到客户提供的Feed文件,其中包含产品及其信息。我们在数据库中记录从客户收到的每个Feed请求。 问题是,给定一个Feed文件,我们需要获取在给定Feed文件中具有相同产品列表的所有Feed请求。每个Feed请求都有近200万个候选Feed用于匹配?

1 个答案:

答案 0 :(得分:0)

让我总结一下,只是为了确保我们在同一页上。

应用程序可能会收到一个Feed请求,其中包含产品列表。每次发生这种情况时,你都会在数据库中记录FR,另外你想检查过去包含相同产品集的所有FR,是吗?

如果是这样,一个想法是为FR内的产品列表生成散列密钥。这样,db中的每个FR都有自己的哈希 - 这对应于此FR包含的产品列表。

例如

  

Feed请求来到应用程序,它包含产品2,1,3   app对产品标识进行排序:[1,2,3],然后生成哈希:   h([1,2,3])= abc。然后,你需要寻找以前的FRs   相同的产品集,就是生成一个查询:"从Feed请求中获取所有记录,其中   hash等于" abc" "

如果以正确的方式索引数据,即使有数百万条记录,这种比较也不是很昂贵。