安装PostgreSQL-11及中文分词器Zhparser-2

2,647 阅读3分钟

  接上一篇文章:PostgreSQL-11及中文分词器Zhparser-1

  PostgreSQL 默认分词器是按照空格及各种标点符号来分词,但这不符合中文文章的分词方式。而Zhparser是一个PostgreSQL的扩展,用于中文的全文搜索,基于SCWS,实现了一个中文解析器,所以在安装Zhparser之前需要安装SCWS。

  SCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。 这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。

  • 安装SCWS

  1. 通过wget下载SCWS的压缩包

wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2

  1. 解压并进入文件夹

tar -jxvf scws-1.2.2.tar.bz2
cd scws-1.2.2

  1. 编译安装

  configure文件是一个可执行的脚本文件,用来生成Makefile文件,--prefix 可以指定路径。默认路径为:/usr/local(可执行文件放在/usr/local/bin,库文件放在/usr/local/lib,配置文件放在/usr/local/etc,其它的资源文件放在/usr/local/share)
./configure --prefix=/opt/scws-1.2.2

make 是一个命令工具,它解释 Makefile 中的指令
make

make install 进行安装,也是从Makefile中读取指令,安装到指定的位置
make install

以上三条命令可以连写:
./configure --prefix=/opt/scws-1.2.2 && make && make install

  • 安装Zhparser

  1. github.com/amutu/zhpar… 上下载Zhparser并上传

  2. 设置环境变量

export PATH=/usr/pgsql-11/bin/:$PATH

  1. 安装postgresql11-devel

  如果不安装此软件包的话,在编译zhparser文件时会报pg_config: Command not found错误

yum install postgresql11-devel.x86_64

  1. 编译安装

SCWS_HOME=/opt/scws-1.2.2 make&&make install

  • 进入数据库安装扩展

  1. 创建扩展

create extension zhparser;

  1. 查看是否创建成功

select * from pg_ts_parser;

image.png

  1. 创建使用Zhparser作为解析器的文本搜索配置

CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);

  1. 添加token映射

ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;

  • 测试

SELECT * FROM ts_parse('zhparser', '在伦敦举行的七国集团(G7)外长会议,5日因参会的印度代 表团被爆检出新冠病毒阳性而蒙上一层阴影。该事件凸显当下疫情形势之严峻。这是G7 两年来首次举行的线下“盛 会”,而疫情及相关问题本应成为重要议题,因为G7的成立就是为协调世界主要工业大国之间的经济政策,然而,无论是伦敦G7外长会议召开前,还是会议期间对各热点话题的讨论时间,都显示中国议题被置于议程表首位。用一名 美国智库学者的话说,“此次会议的更大背景是中国”。');

image.png

SELECT to_tsvector('testzhcfg','在伦敦举行的七国集团(G7)外长会议,5日因参会的印度代表团 被爆检出新冠病毒阳性而蒙上一层阴影。该事件凸显当下疫情形势之严峻。这是G7 两年来首次举行的线下“盛会”,而疫情及相关问题本应成为重要议题,因为G7的成立就是为协调世界主要工业大国之间的经济政策,然而,无论是 伦敦G7外长会议召开前,还是会议期间对各热点话题的讨论时间,都显示中国议题被置于议程表首位。用一名美国 智库学者的话说,“此次会议的更大背景是中国”。');

image.png

SELECT to_tsquery('testzhcfg', '该事件凸显当下疫情形势之严峻。');

image.png