0

我想做的事;

我有两个带有两个地址列的表,它们都存储为text我想创建一个返回匹配行的视图。

我尝试过的;

我已经在列和表上创建并索引如下;

CREATE INDEX idx_table1_fulladdress ON table1 (LOWER(fulladdress_ppd));

然后运行以下命令;

CREATE OR REPLACE VIEW view_adresscheck AS
SELECT 
--from table1
    table1.postcode,
    table1.fulladdress_ppd,
--from table2
    table2.epc_postcode,
    table2.fulladdress_epc 
FROM
    table1,
    table2
WHERE 
    table1.postcode = table2.epc_postcode
AND 
    table2.fulladdress_epc = table1.fulladdress_ppd ::text;

什么没用 上面返回的记录比我知道的要少。经检查,这是因为两个表之间的地址格式不一致,即。

table1.fulladdress_ppd = Flat 2d The building the street
table2.fulladdress_epc = Flat 2/d The building the street, the town

该地址在表格中的格式也不一致,即table并非所有地址都包括城镇,因此我无法使用regextrim批量清理。

然后我在 postgres 中看到了该fuzzystrmatch 模块,这听起来可能会解决我的问题。

问题 Soundex、Levenshtein、Metaphone 中哪个最合适。大多数记录都是英文的,有些地名是盖尔语,在 9.6 上运行。

4

1 回答 1

0

从不同来源匹配地址的经验谈起。你可以做的是索引每个地址。无论格式如何,上述地址都会返回相同的数字。然后,您匹配这些索引。

例如,在英国,您拥有该国每个邮政地址的所谓 UDPRN 号码。

于 2017-06-17T21:11:17.627 回答