Nominatim涉及"非法查询字符串"

时间:2018-05-23 15:29:55

标签: docker nominatim

我目前正在使用可在https://github.com/bringnow/docker-nominatim找到的Docker镜像安装Nominatim。但是,当我发送查询时,我收到以下错误:

  

错误请求

     

Nominatim在您的请求中遇到错误。

     

详细信息:非法查询字符串(不是UTF-8字符串):paderborn

当我查看控制台时,出现以下错误:

ERROR:  relation "query_log" does not exist at character 13
STATEMENT:  insert into query_log values ('2018-05-23 15:25:03.9961','paderborn','172.18.0.1')
ERROR:  relation "new_query_log" does not exist at character 13
STATEMENT:  insert into new_query_log (type,starttime,query,ipaddress,useragent,language,format) values ('search','2018-05-23 15:25:03.9961','q=paderborn&polygon=1&viewbox=','172.18.0.1','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0','short_name:de,short_name:en-US,short_name:en,name:de,name:en-US,name:en,place_name:de,place_name:en-US,place_name:en,official_name:de,official_name:en-US,official_name:en,short_name,name,place_name,official_name,ref,type','')
ERROR:  function make_standard_name(unknown) does not exist at character 8
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
STATEMENT:  select make_standard_name('paderborn') as string

我已经找到了一个提出以下解决方案的答案:

./utils/setup.php --create-functions --enable-diff-updates

但是,这会导致错误:

Functions
CREATE FUNCTION
ERROR:  could not access file "/app/module/nominatim.so": No such file or directory

当我查看文件系统时,文件nominatim.so存在。所以,这个错误令人困惑。

有人知道解决方案吗?

1 个答案:

答案 0 :(得分:0)

我发现了错误:我们有两个泊坞窗图片,一个用于 nominatim ,另一个用于 postgis 。文件/app/module/nominatim.so是在nominatim图像中创建的,但也需要在postgis图像中。解决方案是创建一个允许共享文件的卷。

在docker-compose.yaml中,将以下行添加到nominatim服务中:

volumes:
- ./volumes/module:/mnt/module

以及postgis服务中的以下几行:

volumes:
- ./volumes/module:/app/module

进一步扩展entrypoint.sh:

log_info "==> Copy nominatim.so"
cp /app/module/nominatim.so /mnt/module/nominatim.so

请注意,您必须重建名义上的Docker镜像。