zhparser:PostgreSQL 中文分词全文检索扩展

6次阅读
没有评论
zhparser:PostgreSQL 中文分词全文检索扩展
获取下载链全程约 1 分钟
  1. 打开微信,搜索「软件教程管家」关注,或长按下方二维码关注
  2. 回复关键词 zhparser
  3. 公众号自动回复网盘链接,点击即可保存下载
zhparser:PostgreSQL 中文分词全文检索扩展打开微信扫一扫关注
或搜索【软件教程管家】
官方渠道:GitHub 仓库

zhparser 是基于 SCWS 的 PostgreSQL 中文分词全文检索扩展,能让 PostgreSQL 直接在数据库内部完成中文分词与全文检索。中文没有空格分隔,PostgreSQL 自带的全文检索对中文基本不可用,zhparser 就是补上这一环的轻量方案:装上扩展、建好文本搜索配置,中文文章、商品名、业务记录就能用 SQL 直接搜了。

项目 zhparser
仓库 amutu/zhparser
主要语言 C
许可证 BSD 风格宽松许可(见仓库 COPYRIGHT 文件)
Star 数 873
用途 PostgreSQL 中文全文检索扩展

前往 GitHub 查看 zhparser

GitHub 国内访问较慢,如打不开可多刷新几次

项目介绍

zhparser 把 SCWS 简体中文分词引擎封装成 PostgreSQL 的全文检索解析器。PostgreSQL 的全文检索流程是先由解析器把文本切成词元,再按文本搜索配置做映射与检索,zhparser 担任的就是解析器这一环:中文句子进来,出来的是按 SCWS 规则切好的词。

扩展支持忽略标点、复合分词等可配置选项,支持加载 TXT 或 XDB 格式的自定义词典,并且允许自定义词典覆盖内置词典。这意味着行业术语、专有名词、业务词汇可以优先按你的定义来切,而不是被通用词典拆散。

核心功能:中文分词接入数据库检索

  • 中文分词:基于 SCWS,把中文文本解析为 PostgreSQL 全文搜索可用的词元。
  • 文本搜索配置:通过 PostgreSQL 的文本搜索配置把分词结果映射进检索流程,支持 ts_parse 等接口。
  • 自定义词典:支持 TXT 与 XDB 两种格式,自定义词可覆盖内置词典,适合业务术语场景。
  • 分词行为可调:忽略标点、复合分词、词典加载方式等选项可按业务文本调整。
  • 两种体验路径:源码编译安装,或基于 PostgreSQL Docker 镜像构建的 zhparser 容器快速体验。

适用场景

  • 站内中文搜索:博客、文档站、内容平台的中文文章检索,不想额外部署搜索集群时直接用数据库解决。
  • 商品与业务记录检索:电商商品名、订单备注、工单内容等中文业务数据的关键词检索。
  • 行业术语检索:医疗、法律、金融等领域有大量专有名词时,用自定义词典保证术语不被切错。
  • 已有 PostgreSQL 的项目:数据本来就在 PostgreSQL 里,不想引入外部搜索服务增加运维负担的团队。

安装与上手步骤

快速体验建议走 Docker,生产部署走源码编译。两种路径如下:

Docker 快速体验

  1. 按仓库说明构建基于 PostgreSQL 镜像的 zhparser 容器并启动。
  2. 进入数据库执行 CREATE EXTENSION zhparser; 创建扩展。
  3. 创建使用 zhparser 的文本搜索配置,例如 CREATE TEXT SEARCH CONFIGURATION zh (PARSER = zhparser);
  4. 用 SELECT * FROM ts_parse('zhparser', '中文全文检索扩展'); 验证分词结果是否符合预期。

源码编译安装

  1. 准备环境:PostgreSQL 9.2 及以上版本、SCWS、编译工具与 PostgreSQL 开发库,PG_CONFIG 须指向正确的安装位置。
  2. 编译并安装扩展:按仓库 README 的步骤 make、make install。
  3. 在目标数据库中执行 CREATE EXTENSION zhparser;,再创建文本搜索配置。
  4. 对业务表建全文检索索引,例如对标题与正文字段建 GIN 索引,然后用 @@ 操作符做中文检索查询。
  5. 如需自定义词典,先准备 TXT 或 XDB 词典文件,按配置参数加载后验证术语切分效果。

注意事项

  • 主要面向普通话中文分词:其他中文语言或复杂语言场景需要结合实际文本验证,不要默认通用。
  • 源码部署依赖不少前置条件:SCWS、PostgreSQL 开发库和匹配的编译环境缺一不可,版本不匹配时编译会失败。
  • 部分词典配置要在数据库启动前设置:这类参数不能对所有连接即时生效,改完配置需要重启或重连才能用,更新词典前先确认生效范围。
  • TXT 词典不宜过大:TXT 词典会动态转换,体积大了影响加载,大型词典更适合转成 XDB 二进制格式使用。
  • 生产使用前先做 PoC:仓库未提供完整的兼容性矩阵与性能数据,务必用目标数据集实测业务词汇、标点处理、复合词行为和版本兼容性。
  • 自定义词典要定期维护:业务新词出现后及时补进词典,否则检索会漏掉新术语,词典文件位置与备份也要纳入运维清单。

同类对比

方案 适合场景 不足
zhparser 数据在 PostgreSQL 内、轻量中文检索、自定义词典 仅中文分词,无完整搜索平台能力
PostgreSQL 自带全文检索 英文等空格分隔语言 对中文基本不可用,无分词能力
Elasticsearch + IK 分词 大规模、多语言、复杂语义检索 需额外部署集群,运维成本高
pg_jieba 同样是 PostgreSQL 中文分词扩展 分词引擎与词典生态不同,需按语料实测选型

如果检索数据主要在 PostgreSQL、团队能维护数据库扩展,且需要自定义词典调中文分词,zhparser 是最轻的解法;如果需要多语言覆盖或完整的搜索平台能力,再考虑 Elasticsearch 这类重方案。

适合人群

适合需要在 PostgreSQL 内直接处理中文分词和全文检索的开发者、数据库工程师,以及需要维护自定义中文词典的应用团队。只是偶尔搜几条中文记录的小项目,用数据库的 LIKE 也能应付,不必专门装扩展。

推广zhparser:PostgreSQL 中文分词全文检索扩展

关注「软件教程管家」

回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。

版权与使用提示

本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›

上次编辑至今:1天 · 内容还比较新鲜

公告

契机库网站正式上线!

了解更多
收藏这款软件我的收藏 →

这款软件怎么样?

平均 暂无评分(0 人评)

取链次数:0

评分与投票来自真实访客,从 0 开始累计;觉得有用就点一下,帮更多人判断这款软件值不值得下。

正文完
 0