我正在使用 PostgreSQL 9.5 处理地址数据库,并尝试创建一个选择语句,其中只返回街道名称而不返回类型。因此,如果我有一个记录显示:“Golf Course Rd”,我只想返回:“Golf Course”,或者如果记录是“Bentwood Rd”,我只想返回“Bentwood”。
关于如何解决这个问题的任何建议?
这是一个问题地址规范化和解析。基本上,您所谈论的内容是通过地名词典(地理规则集)处理的。有两种方法可以做到这一点,
address_standardizer
来自 PostGIS 项目,如果您只使用美国地址,当然更好。pgsql-postal
可能是国际地址的更好方法。我将显示地址的地址标准化版本,
Chicken Ranch
10511 Homestead Rd
Pahrump, NV 89061
Run Code Online (Sandbox Code Playgroud)
使用standardize_address
from address_standardizer
,返回复合类型stdaddr
SELECT * FROM standardize_address('us_lex',
'us_gaz', 'us_rules', '10511 Homestead Rd, Pahrump, NV 89061');
building | house_num | predir | qual | pretype | name | suftype | sufdir | ruralroute | extra | city | state | country | postcode | box | unit
----------+-----------+--------+------+---------+-----------+---------+--------+------------+-------+---------+--------+---------+----------+-----+------
| 10511 | | | | HOMESTEAD | ROAD | | | | PAHRUMP | NEVADA | USA | 89061 | |
(1 row)
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,ROAD
被拉出来了suftype
归档时间: |
|
查看次数: |
3092 次 |
最近记录: |