
- 打开微信,搜索「软件教程管家」关注,或长按下方二维码关注
- 回复关键词 zhparser
- 公众号自动回复网盘链接,点击即可保存下载
打开微信扫一扫关注或搜索【软件教程管家】
zhparser 是基于 SCWS 的 PostgreSQL 中文分词全文检索扩展,能让 PostgreSQL 直接在数据库内部完成中文分词与全文检索。中文没有空格分隔,PostgreSQL 自带的全文检索对中文基本不可用,zhparser 就是补上这一环的轻量方案:装上扩展、建好文本搜索配置,中文文章、商品名、业务记录就能用 SQL 直接搜了。
| 项目 | zhparser |
|---|---|
| 仓库 | amutu/zhparser |
| 主要语言 | C |
| 许可证 | BSD 风格宽松许可(见仓库 COPYRIGHT 文件) |
| Star 数 | 873 |
| 用途 | PostgreSQL 中文全文检索扩展 |
GitHub 国内访问较慢,如打不开可多刷新几次
项目介绍
zhparser 把 SCWS 简体中文分词引擎封装成 PostgreSQL 的全文检索解析器。PostgreSQL 的全文检索流程是先由解析器把文本切成词元,再按文本搜索配置做映射与检索,zhparser 担任的就是解析器这一环:中文句子进来,出来的是按 SCWS 规则切好的词。
扩展支持忽略标点、复合分词等可配置选项,支持加载 TXT 或 XDB 格式的自定义词典,并且允许自定义词典覆盖内置词典。这意味着行业术语、专有名词、业务词汇可以优先按你的定义来切,而不是被通用词典拆散。
核心功能:中文分词接入数据库检索
- 中文分词:基于 SCWS,把中文文本解析为 PostgreSQL 全文搜索可用的词元。
- 文本搜索配置:通过 PostgreSQL 的文本搜索配置把分词结果映射进检索流程,支持 ts_parse 等接口。
- 自定义词典:支持 TXT 与 XDB 两种格式,自定义词可覆盖内置词典,适合业务术语场景。
- 分词行为可调:忽略标点、复合分词、词典加载方式等选项可按业务文本调整。
- 两种体验路径:源码编译安装,或基于 PostgreSQL Docker 镜像构建的 zhparser 容器快速体验。
适用场景
- 站内中文搜索:博客、文档站、内容平台的中文文章检索,不想额外部署搜索集群时直接用数据库解决。
- 商品与业务记录检索:电商商品名、订单备注、工单内容等中文业务数据的关键词检索。
- 行业术语检索:医疗、法律、金融等领域有大量专有名词时,用自定义词典保证术语不被切错。
- 已有 PostgreSQL 的项目:数据本来就在 PostgreSQL 里,不想引入外部搜索服务增加运维负担的团队。
安装与上手步骤
快速体验建议走 Docker,生产部署走源码编译。两种路径如下:
Docker 快速体验
- 按仓库说明构建基于 PostgreSQL 镜像的 zhparser 容器并启动。
- 进入数据库执行
CREATE EXTENSION zhparser;创建扩展。 - 创建使用 zhparser 的文本搜索配置,例如
CREATE TEXT SEARCH CONFIGURATION zh (PARSER = zhparser); - 用
SELECT * FROM ts_parse('zhparser', '中文全文检索扩展');验证分词结果是否符合预期。
源码编译安装
- 准备环境:PostgreSQL 9.2 及以上版本、SCWS、编译工具与 PostgreSQL 开发库,PG_CONFIG 须指向正确的安装位置。
- 编译并安装扩展:按仓库 README 的步骤 make、make install。
- 在目标数据库中执行
CREATE EXTENSION zhparser;,再创建文本搜索配置。 - 对业务表建全文检索索引,例如对标题与正文字段建 GIN 索引,然后用
@@操作符做中文检索查询。 - 如需自定义词典,先准备 TXT 或 XDB 词典文件,按配置参数加载后验证术语切分效果。
注意事项
- 主要面向普通话中文分词:其他中文语言或复杂语言场景需要结合实际文本验证,不要默认通用。
- 源码部署依赖不少前置条件:SCWS、PostgreSQL 开发库和匹配的编译环境缺一不可,版本不匹配时编译会失败。
- 部分词典配置要在数据库启动前设置:这类参数不能对所有连接即时生效,改完配置需要重启或重连才能用,更新词典前先确认生效范围。
- TXT 词典不宜过大:TXT 词典会动态转换,体积大了影响加载,大型词典更适合转成 XDB 二进制格式使用。
- 生产使用前先做 PoC:仓库未提供完整的兼容性矩阵与性能数据,务必用目标数据集实测业务词汇、标点处理、复合词行为和版本兼容性。
- 自定义词典要定期维护:业务新词出现后及时补进词典,否则检索会漏掉新术语,词典文件位置与备份也要纳入运维清单。
同类对比
| 方案 | 适合场景 | 不足 |
|---|---|---|
| zhparser | 数据在 PostgreSQL 内、轻量中文检索、自定义词典 | 仅中文分词,无完整搜索平台能力 |
| PostgreSQL 自带全文检索 | 英文等空格分隔语言 | 对中文基本不可用,无分词能力 |
| Elasticsearch + IK 分词 | 大规模、多语言、复杂语义检索 | 需额外部署集群,运维成本高 |
| pg_jieba | 同样是 PostgreSQL 中文分词扩展 | 分词引擎与词典生态不同,需按语料实测选型 |
如果检索数据主要在 PostgreSQL、团队能维护数据库扩展,且需要自定义词典调中文分词,zhparser 是最轻的解法;如果需要多语言覆盖或完整的搜索平台能力,再考虑 Elasticsearch 这类重方案。
适合人群
适合需要在 PostgreSQL 内直接处理中文分词和全文检索的开发者、数据库工程师,以及需要维护自定义中文词典的应用团队。只是偶尔搜几条中文记录的小项目,用数据库的 LIKE 也能应付,不必专门装扩展。

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›
文章推荐
标签推荐
这款软件怎么样?
平均 暂无评分(0 人评)
取链次数:0
评分与投票来自真实访客,从 0 开始累计;觉得有用就点一下,帮更多人判断这款软件值不值得下。






