如何将爬网位置映射到数据库中的现有位置

how to map crawled locations to existing locations in the database

背景: 我正在建立一个网站,从香港的房地产网站(一个示例项目)中抓取数据。我为各种 属性 列表抓取不同的网站。因此,我从原始爬网位置

获得了多种位置格式

示例: 几个 原始抓取位置的示例

从以上地址可以看出,香港同区,即北角可以有多种形式,上面列举的不多。问题是这个数据没有意义,除非它是 mapped/structured

要求: 我想要一些优雅的解决方案,能够将这些原始爬网位置映射到一组预定义的值。我能想到的一种方法是,创建一个位置数据库(我正在使用 mysql),并为每个已爬网的原始位置找出匹配的 locationId。 如果上面的方案听起来不错,那么我的数据库将包含如下字段:

LOCATION_REF、国家、州、城市、地区、subLocality1、subLocality2、纬度、经度

补充资料: 我也是用apache solr (lucene)搭建的,欢迎任何solr相关的搭配建议

思考:我认为必须有一些预定义的API 来做这样的事情,因为我看到的几乎每个应用程序都有基于位置的搜索和过滤。是否有 google api 可以做到这一点?如果是的话,如果有人能提供好的例子,我将不胜感激

PS:我使用 Jsoup 从页面解析数据(提取原始位置)

我找到了一种方法,Google 地理编码回答了我提出的所有问题。 Google 地理编码 API 将原始地址格式映射到它自己的格式,根据位置层次结构给出位置的结构化数据(例如街道号码、街区、地点等。这就是我需要的

这里是link供参考:https://developers.google.com/maps/documentation/geocoding/intro