我需要匹配大约2500万个地址记录和大约200,000个其他地址记录。我也希望有一个小程度的模糊性,所以比较完全匹配是有点出来的。地址被解析为两个数据集中的组件。它们都存储在SQL Server 2008数据库中。
我有一个想法是批量进行比较(按州分组)直到我到达终点,将匹配转储到临时数据库。这可以在.NET应用程序中完成,但我不认为这太有效了,因为我必须将数据从SQL中提取到应用程序中并逐个迭代它。线程可以加快这个过程,但我不知道多少。
我还考虑将2500万条记录索引到Lucene索引中并利用其中的过滤来缩小缩小的潜在匹配。
这些都是一个好方法吗?还有哪些其他选择?
答案 0 :(得分:0)
首次通过确实
对于模糊,您可以使用Levenstien Distance
您也可以在.NET中运行Levenstien 将200,000带入.NET集合可能是有意义的 然后将2500万个一次与200,000个相比较 我认为.NET实现速度更快,但不知道速度有多快。
MSSQL有SOUNDEX但它是模糊的方式。
希望您有一个有效的状态来过滤
希望你有一些有效的邮政编码
如果邮政编码有效,则只过滤到该邮政编码