我想做的事;
我有两个带有两个地址列的表,它们都存储为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
并非所有地址都包括城镇,因此我无法使用regex
或trim
批量清理。
然后我在 postgres 中看到了该fuzzystrmatch
模块,这听起来可能会解决我的问题。
问题 Soundex、Levenshtein、Metaphone 中哪个最合适。大多数记录都是英文的,有些地名是盖尔语,在 9.6 上运行。