osmnames-sphinxsearch是一个基于Sphinx搜索引擎的地理地名搜索服务,旨在替代Nominatim的JSON API。它使用OSMNames项目提供的地理地名数据(来源于OpenStreetMap),通过Sphinx实现高效的全文搜索,适用于需要地理名称查询功能的应用场景。
自动完成搜索:/q/<query>.js
返回与查询词<query>匹配的20条结果,支持地名自动补全。
特定国家自动完成搜索:/<country_code>/q/<query>.js
返回指定国家(由 lowercase ISO 3166 Alpha-2 代码<country_code>标识)内与查询词<query>匹配的20条结果。
坐标反查:/r/<longitude>/<latitude>.js
返回距离指定经纬度最近的1条地名结果。
特定类别坐标反查:/r/<class>/<longitude>/<latitude>.js
返回距离指定经纬度最近且属于特定类别的1条地名结果。<class>可指定多个类别(用逗号分隔,如place,natural),支持的类别包括highway、waterway、natural、boundary、place、landuse和multiple(基于OSMNames数据集)。
服务仅接受名为data.tsv(或gzip压缩的data.tsv.gz)的TSV文件,列顺序必须如下:
name alternative_names osm_type osm_id class type lon lat place_rank importance street city county state country country_code display_name west south east north wikidata wikipedia housenumbers
要求:
importance列排序若未指定数据,服务将自动下载包含100k条记录的OSMNames样本数据(来自https://github.com/OSMNames/OSMNames/releases/tag/v2.0.4%EF%BC%89%E3%80%82
包含OSMNames Websearch(REST API)、SphinxSearch搜索引擎及nginx服务器。
bashdocker run -d --name klokantech-osmnames-sphinxsearch -p 80:80 klokantech/osmnames-sphinxsearch
将本地数据文件挂载到容器内/data/input/路径:
bashdocker run -d --name klokantech-osmnames-sphinxsearch \ -v /path/to/local/data/folder/:/data/input/ \ -p 80:80 \ klokantech/osmnames-sphinxsearch
数据文件需命名为
data.tsv或data.tsv.gz,首次运行或索引文件缺失时将自动建立索引。
指定自定义索引存储路径:
bashdocker run -d --name klokantech-osmnames-sphinxsearch \ -v /path/to/index/folder/:/data/index/ \ -v /path/to/data/folder/:/data/input/ \ -p 80:80 \ klokantech/osmnames-sphinxsearch
若本地目录结构为:
/path/to/folder/ - input/ # 包含data.tsv或data.tsv.gz - index/ # 索引文件存储目录
可直接挂载根目录:
bashdocker run -d -v /path/to/folder/:/data/ -p 80:80 klokantech/osmnames-sphinxsearch
SphinxSearch需对源数据建立索引,索引操作在首次运行或源数据变更时自动执行,耗时和存储空间随数据量增加而增长:
100k样本数据:
源文件大小约8.15 MiB(gzip压缩),索引需314 MiB存储空间,索引耗时约33秒。
全球全量数据(2300万条记录):
源文件为https://github.com/OSMNames/OSMNames/releases/download/v2.0.4/planet-latest_geonames.tsv.gz%EF%BC%8C%E7%B4%A2%E5%BC%95%E9%9C%8034 GiB存储空间,索引耗时约22分钟。
通过容器内脚本手动触发索引:
bashdocker exec -it klokantech-osmnames-sphinxsearch bash sphinx-reindex.sh force
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务