我正在尝试将用户提供的邮政地址数据与地址参考数据集进行匹配。我想索引两个数据集并加入索引字段。在一个完美的世界中,这将使用由完整地址组成的密钥(例如,WHERE REF_ADDR = INPUT_ADDR
将给出100 W Main St, Springfield, OH 45502 = 100 W Main St, Springfield, OH 45502
)。当然,地址很少是完美的,所以我有一个脚本可以使用模糊逻辑来适应差异。但是,由于此脚本非常慢,因此我想减少在使用之前尝试匹配过程的参考数据集中的候选者数量。为了找到所有潜在的候选人,我打算创建一个从各个地址组件派生的索引键,用于加入。问题是,仅靠一个键无法捕获所有可能的候选者。我可能需要创建多个索引键才能捕获所有候选者。
例如,100 WMNST 455
for address形式的索引键在100 W Main St, Springfield, OH 45502
大多数情况下都是好的,但可能有任意数量的地址错误不会被这样的键捕获。为了适应匹配过程将识别的所有潜在错误,我可能需要至少实现几个索引键以进行连接。
我想知道是否有人对处理此问题有任何建议。参考数据集由 40M 条记录组成,用户提供的地址数据通常约为 10,000 条记录。与我建议的方法相比,简单地使用LIKE
和查询地址字段会更有效吗?OR
在后一个数据集(由脚本适应)中遇到以下变化并不罕见:
Address: 100 W MAIN
City:
Zip: 45502
Address: 100 MAIN ST
City: SPNGFLD
Zip:
Address: 100 W MAIN STREET
City: SPRINGFIELD
Zip: 54502
Address: 100 MAIN
City: NORTHRIDGE
Zip: 45502