接上一篇文章:PostgreSQL-11及中文分词器Zhparser-1
PostgreSQL 默认分词器是按照空格及各种标点符号来分词,但这不符合中文文章的分词方式。而Zhparser是一个PostgreSQL的扩展,用于中文的全文搜索,基于SCWS,实现了一个中文解析器,所以在安装Zhparser之前需要安装SCWS。
SCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。 这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。
-
安装SCWS
-
通过wget下载SCWS的压缩包
wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
-
解压并进入文件夹
tar -jxvf scws-1.2.2.tar.bz2
cd scws-1.2.2
-
编译安装
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
-
从 github.com/amutu/zhpar… 上下载Zhparser并上传
-
设置环境变量
export PATH=/usr/pgsql-11/bin/:$PATH
-
安装postgresql11-devel
如果不安装此软件包的话,在编译zhparser文件时会报pg_config: Command not found错误
yum install postgresql11-devel.x86_64
-
编译安装
SCWS_HOME=/opt/scws-1.2.2 make&&make install
-
进入数据库安装扩展
-
创建扩展
create extension zhparser;
-
查看是否创建成功
select * from pg_ts_parser;
-
创建使用Zhparser作为解析器的文本搜索配置
CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);
-
添加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外长会议召开前,还是会议期间对各热点话题的讨论时间,都显示中国议题被置于议程表首位。用一名 美国智库学者的话说,“此次会议的更大背景是中国”。');
SELECT to_tsvector('testzhcfg','在伦敦举行的七国集团(G7)外长会议,5日因参会的印度代表团 被爆检出新冠病毒阳性而蒙上一层阴影。该事件凸显当下疫情形势之严峻。这是G7 两年来首次举行的线下“盛会”,而疫情及相关问题本应成为重要议题,因为G7的成立就是为协调世界主要工业大国之间的经济政策,然而,无论是 伦敦G7外长会议召开前,还是会议期间对各热点话题的讨论时间,都显示中国议题被置于议程表首位。用一名美国 智库学者的话说,“此次会议的更大背景是中国”。');
SELECT to_tsquery('testzhcfg', '该事件凸显当下疫情形势之严峻。');