如何向现有Pelias数据库添加新Who's On First地点及提取英国数据
完全可以不用重新下载完整的27GB Who's on First数据库,直接利用你已有的whosonfirst-data-latest.db来提取英国数据并导入Pelias,具体步骤如下:
1. 确认本地数据库包含英国WOF数据
你通过pelias download wof下载的whosonfirst-data-latest.db是完整的全球库,默认包含所有地区的WOF条目,英国数据肯定在其中。如果想验证,可通过SQLite命令行工具查询:
# 切换到数据目录下的whosonfirst文件夹 cd $DATA_DIR/whosonfirst # 启动SQLite交互终端 sqlite3 whosonfirst-data-latest.db # 查询英国顶级WOF条目(ID为85633119) SELECT name, wof_id FROM whosonfirst_places WHERE wof_id = 85633119;
如果返回结果包含"United Kingdom",就说明数据存在。
2. 更新Pelias配置文件
打开你的pelias.json,修改imports.whosonfirst.importPlace配置,把英国的WOF ID添加进去(保留土耳其的ID,这样会同时保留两国数据):
"imports": { "whosonfirst": { "importPlace": [ "你的土耳其WOF ID", "85633119" // 英国顶级WOF ID ] } }
注:如果需要导入英国下属的特定区域(比如英格兰、苏格兰),可以添加对应WOF ID,比如英格兰是
85633033,苏格兰是85633053。
3. 重新运行WOF导入命令
不需要再次下载数据,直接执行导入命令即可——Pelias会自动读取本地的whosonfirst-data-latest.db,只处理你指定的土耳其和英国相关条目:
pelias import whosonfirst
这个过程会比重新下载完整库快很多,因为它只处理你需要的区域数据。
4. 可选:增量导入优化
如果担心重新导入会覆盖现有土耳其数据,你可以先备份Pelias的Elasticsearch索引,或者尝试添加--append参数(部分Pelias版本支持增量追加):
pelias import whosonfirst --append
关键提醒
只要你的本地whosonfirst-data-latest.db是通过pelias download wof下载的完整版本,就完全不需要再次下载27GB的文件。如果之前你下载的是裁剪版(仅包含土耳其),那才需要单独下载英国区域的裁剪包,但你的场景显然不属于这种情况。
内容的提问来源于stack exchange,提问作者Prozeke




