我有一个有趣的问题。我们收到客户提供的Feed文件,其中包含产品及其信息。我们在数据库中记录从客户收到的每个Feed请求。 问题是,给定一个Feed文件,我们需要获取在给定Feed文件中具有相同产品列表的所有Feed请求。每个Feed请求都有近200万个候选Feed用于匹配?
答案 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" "
如果以正确的方式索引数据,即使有数百万条记录,这种比较也不是很昂贵。