
本镜像基于zhparser扩展构建,为PostgreSQL数据库提供中文全文搜索能力。zhparser基于Xunsearch的SCWS(Simple Chinese Word Segmentation)分词引擎,是PostgreSQL中文全文搜索的常用解决方案,且持续维护更新。
参考PostgreSQL官方镜像文档,基础启动命令:
bashdocker run -p 5432:5432 chenxinaz/zhparser
首次启动容器时,默认数据库会自动执行基础配置。对于新创建的数据库,需手动执行以下SQL配置zhparser:
sql-- 创建zhparser扩展 CREATE EXTENSION zhparser; -- 创建文本搜索配置 CREATE TEXT SEARCH CONFIGURATION chinese_zh (PARSER = zhparser); -- 添加令牌类型映射(n:名词, v:动词, a:形容词等) ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;
配置说明
chinese_zh为自定义配置名称,可根据需求修改n,v,a,i,e,l为令牌类型,未映射的类型将不参与文本分词\dFp+ zhparser可查看zhparser支持的所有令牌类型验证分词效果:
sqlselect ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
输出示例:
ts_debug ------------------------------------------- (t,time,白垩纪,{},,) (v,verb,是,{simple},simple,{是}) (n,noun,地球,{simple},simple,{地球}) (n,noun,上海,{simple},simple,{上海}) ...
生成文本向量:
sqlselect to_tsvector('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
输出示例:
to_tsvector -------------------------------------------------------------------------------------------- '上海':3 '分布':4 '变化':6 '地球':2 '时代':10 '是':1 '活动':8 '火山':7 '生物界':5 '频繁':9
注:若需包含"白垩纪",需添加时间类型映射:ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR t WITH simple;
sql-- 向量与查询匹配测试 select to_tsquery('chinese_zh', '地球') @@ to_tsvector('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
输出:
?column? ---------- t
sqlcreate table testing( title text ); -- 插入测试数据 insert into testing values('白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代'); insert into testing values('艾泽拉斯包括卡利姆多、东部王国两大大陆,暗夜精灵主城达纳苏斯位于东部王国北端。'); -- 创建GIN索引提升查询性能 create index ind_testing on testing using gin (to_tsvector('chinese_zh', title));
sql-- 搜索包含"白垩纪"的记录 select * from testing where to_tsquery('chinese_zh', '白垩纪') @@ to_tsvector('chinese_zh', title);
在容器内创建词典文件/usr/share/postgresql/9.6/tsearch_data/mydict.utf8.txt:
# 格式:词 TF IDF ATTR(TF/IDF/ATTR可省略) 艾泽拉斯 1 1 n 卡利姆多 1 1 n 达纳苏斯 1 1 n
修改PostgreSQL配置文件/var/lib/postgresql/data/postgresql.conf:
zhparser.extra_dicts = 'mydict.utf8.txt'
重启PostgreSQL服务使配置生效
XDB格式为二进制词典,性能优于TXT格式:
生成XDB词典:
bashcd /usr/share/postgresql/9.6/tsearch_data ldconfig # 解决库依赖问题 scws-gen-dict -c UTF8 mydict.utf8.txt mydict.utf8.xdb chown postgres:postgres mydict.utf8.xdb # 设置权限
更新配置文件:
bashsed -i 's/mydict\.utf8\.txt/mydict.utf8.xdb/' /var/lib/postgresql/data/postgresql.conf
重启PostgreSQL服务
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务