匹配数据库中的大量记录?

时间:2014-03-14 18:19:03

标签: sql .net lucene

我需要匹配大约2500万个地址记录和大约200,000个其他地址记录。我也希望有一个小程度的模糊性,所以比较完全匹配是有点出来的。地址被解析为两个数据集中的组件。它们都存储在SQL Server 2008数据库中。

我有一个想法是批量进行比较(按州分组)直到我到达终点,将匹配转储到临时数据库。这可以在.NET应用程序中完成,但我不认为这太有效了,因为我必须将数据从SQL中提取到应用程序中并逐个迭代它。线程可以加快这个过程,但我不知道多少。

我还考虑将2500万条记录索引到Lucene索引中并利用其中的过滤来缩小缩小的潜在匹配。

这些都是一个好方法吗?还有哪些其他选择?

1 个答案:

答案 0 :(得分:0)

首次通过确实

对于模糊,您可以使用Levenstien Distance

Levenstien Distance TSQL

您也可以在.NET中运行Levenstien 将200,000带入.NET集合可能是有意义的 然后将2500万个一次与200,000个相比较 我认为.NET实现速度更快,但不知道速度有多快。

C# Levenshtein

MSSQL有SOUNDEX但它是模糊的方式。

希望您有一个有效的状态来过滤

希望你有一些有效的邮政编码
如果邮政编码有效,则只过滤到该邮政编码