Docker安装带中文全文搜索插件zhparser的Postgresql数据库

上一篇讲了在已经安装了PG数据库的情况下,安装全文搜索插件zhparser遇到的问题。在一个全新的环境中安装带有全文搜索插件zhparser的PG数据库,可以使用已经做好的Docker镜像,在安装的过程中,我来说说我遇到过的问题,大部分问题来自postgresql镜像。

1、拉取zhparser的镜像

基本运行命令docker run -p 5432:5432 chenxinaz/zhparser
在docker hub中zhparser项目的地址,https://hub.docker.com/r/chenxinaz/zhparser,这个镜像基于postgresql的镜像来做的,包含postgresql的数据库,不用额外安装postgresql数据库。上面的运行命令测试还可以,不建议正式使用。

2、初始化插件

在指定数据库初始化插件,运行下面SQL:

CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION chinese_zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;

测试插件是否安装成功SQL:

select ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');

3、关于postgresql镜像的高级参数

zhparser的可用环境参数大部分来自postgresql镜像,可以直接查看postgresql进行的环境参数。在初始化容器的时候,不设定容器参数,之后改起来就很麻烦。
例如指定数据库用户和密码:docker run -d --name pg -e POSTGRES_PASSWORD=password chenxinaz/zhparser
能指定的环境参数:
-POSTGRES_PASSWORD
-POSTGRES_USER
-POSTGRES_DB
-POSTGRES_INITDB_ARGS
-POSTGRES_INITDB_WALDIR
-PGDATA
指定数据库的配置,这个最好指定,不然在使用的时候出一些too many connections的错误就非常恶心。

#复制一个配置文件的副本到本地目录
$ docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf

# 指定配置文件的位置
$ docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=password -v "$本地配置文件位置":/etc/postgresql/postgresql.conf --name=pg chenxinaz/zhparser -c 'config_file=/etc/postgresql/postgresql.conf'

还可以指定初始化容器的初始化语句,具体参考官方项目文档:https://hub.docker.com/_/postgres

猜你喜欢

转载自www.cnblogs.com/ginponson/p/11746754.html