安装zhparser中文分词插件真的费劲,连着搞了两三天,网上也找不到一个完整的办法,安装过程中遇到各种各样的错误,在崩溃的边缘疯狂试探,最后总算成功了,特此记录一下,也帮助有缘人少走一点弯路。
(所需安装包资源在文末,懒人自取。
)
下载pgrouting_12-3.1.2-1.rhel7.x86_64.rpm,上传到postgresql安装目录下指定文件夹中,本例是pgrouting文件夹,如果没有则创建
mkdir pgrouting
cd /usr/pgsql-12/pgrouting/
rpm -ivh pgrouting_12-3.1.2-1.rhel7.x86_64.rpm
切换到postgres用户:su - postgres
$ psql
$ create extension pgrouting;
下载SCWS和zhparser
https://github.com/hightman/scws/releases
https://github.com/amutu/zhparser
zhparser-0.2.0.zip
和scws-1.2.3.tar.bz2
上传到/usr/pgsql-12
中
cd /usr/pgsql-12
tar xvf scws-1.2.3.tar.bz2
cd scws-1.2.3
./configure
make install
ls /usr/local/include/scws
如下显示则安装成功
charset.h crc32.h darray.h darray.h pool.h rule.h scws.h version.h xbd.h xdict.h xtree.h
zhparser支持PostgreSQL 9.2及以上版本,请确保你的PG版本符合要求。 对于REDHAT/CentOS Linux系统,请确保安装了相关的库和头文件,一般它们在postgresql-devel软件包中。
需要安装17个文件,不然后面会报各种错误
(1):llvm-toolset-7-runtime-5.0.1-4.el [ 6%]
(2):llvm5.0-libs-5.0.1-7.el7 [ 12%]
(3):devtoolset-7-runtime-7.1-4.el7 [ 18%]
(4):devtoolset-7-libstdc++-devel-7.3 [ 24%]
(5):devtoolset-7-binutils-2.28-11.el7 [ 29%]
(6):llvm5.0-5.0.1-7.el7 [ 35%]
(7):llvm-toolset-7-compiler-rt-5.0.1 [ 41%]
(8):llvm-toolset-7-libomp-5.0.1-2.el7 [ 47%]
(9):libicu-50.2-4.el7_7 [ 53%]
(10):libedit-devel-3.0-12.20121213cvs [ 59%]
(11):llvm5.0-devel-5.0.1-7.el7 [ 65%]
(12):libicu-devel-50.2-4.el7_7 [ 71%]
(13):llvm-toolset-7-libomp-devel-5.0.1 [ 76%]
(14):devtoolset-7-gcc-7.3.1-5.16.el7 [ 82%]
(15):devtoolset-7-gcc-c++-7.3.1-5.16.e [ 88%]
(16):llvm-toolset-7-clang-libs-5.0.1-4 [ 94%]
(17):llvm-toolset-7-clang-5.0.1-4.el7 [100%]
命令行执行:
cd /home/llvm
# 暴力安装
rpm -ivh *.rpm --nodeps --force
将postgresql12-devel-12.4-1PGDG.rhel7.x86_64.rpm上传到自定义目录即可
cd /home/pg12_rpm_packs
rpm -ivh postgresql12-devel-12.4-1PGDG.rhel7.x86_64.rpm
(1)配置环境变量
修改环境变量,新增Postgresql的Home目录(安装目录)和Bin目录的配置
vim /etc/profile
PG_HOME=/usr/pgsql-12/
PG_BIN=/usr/pgsql-12/bin
PATH=$PG_HOME/bin:$PATH
export PG_HOME PG_BIN
:wq
保存退出
source /etc/profile
验证配置变量是否生效:echo $PG_HOME
显示postgresql安装目录/usr/pgsql-12/
即可
(2)编译zhparser
unzip zhparser-0.2.0.zip
cd /usr/pgsql-12/zhparser-0.2.0
SCWS_HOME=/usr/local make && make install
切换用户: su - postgres
每新建一个数据库都要执行创建扩展
创建extension: $ create extension zhparser;
$ CREATE TEXT SEARCH CONFIGURATION zh (PARSER = zhparser);
$ ALTER TEXT SEARCH CONFIGURATION zh ADD MAPPING FOR n,v,a,i,e,l,j WITH simple;
验证:select to_tsvector('zh','十九大精神');