如何在国产数据库HHDB上安装zhparser插件
1 简介
恒辉HHDB的技术路线如下:
- 深入分析Postgres源码 -- 取其精华
- 在Postgres基础上加强 -- 去其糟粕
- 成熟可控的代码合并工具 -- 持续升级
- 全面完整的自动化测试 -- 保证稳定
- 利用Postgres开放的许可协议 -- 为我所用
恒辉关系数据库HHDB基于Postgres最新版本,可以和PG同步升级,比PG最新版更加强大、易用。Postgres的相关插件都可以安装于HHDB中。
zhparser是一个PostgreSQL中文分词的插件,通过它,可以使PostgreSQL支持中文的全文检索。zhparser支持PostgreSQL 9.2及以上版本,对于我们的HHDB数据库,需要确保HHDB版本符合要求,然后在Linux系统环境中,依赖HHDB数据库进行zhparser相应的编译安装。
2 环境说明
- 操作系统:CentOS7.7
- 数据库:hhdb数据库12.2
3 安装 SCWS 分词库
全文索引的实现要靠 PgSQL 的 gin 索引。分词功能 PgSQL 内置了英文、西班牙文等,但中文分词需要借助开源插件 zhparser; 要使用 zhparser,我们首先要安装 SCWS 分词库,SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)
以下演示使用hh用户安装SCWS,安装于目录/home/hh/hhdb12.2/scws
#1、获取安装包 #若wget未安装则先使用root用户安装wget:yum -y install wget wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 #2、解压(安装完成后scws-1.2.3文件夹可删除) #若bzip2未安装则先使用root用户安装bzip2: yum -y install bzip2 tar xvjf scws-1.2.3.tar.bz2 #3、进入目录执行配置脚本 cd scws-1.2.3 #prefix后该路径为scws的安装路径 ./configure --prefix=/home/hh/hhdb12.2/scws ## 如若报错:configure: error: no acceptable C compiler found in $PATH... 则使用root用户升级安装gcc: yum install gcc,之后重试 #4、编译 make install #5、校验。顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在 查看是否安装成功 ls -al /home/hh/hhdb12.2/scws/lib/libscws.la
4 安装zhparser
4.1 获取安装包
获取zhparser安装包(GitHub地址:https://github.com/amutu/zhparser)
4.2 解压修改安装包使其兼容HHDB
以下演示,把zhparser安装包解压到数据库目录下编译,相关scws文件夹路径修改为相对路径。
sql文件(zhparser--1.0--2.0.sql,zhparser--1.0.sql,zhparser--2.0--2.1.sql,zhparser--2.0.sql,zhparser--2.1.sql)内容替换: pg ==> hh zhparser.c文件替换: postgres.h ==> hhdb.h PG_ ==> HH_ zhparser.h文件scws.h路径修改(改为以上编译好的scws.h的相对路径): #include "scws.h" ==> #include "../scws/include/scws/scws.h" Makefile文件内容替换: SCWS安装目录修改为(改为以上编译好的scws文件夹的相对路径):SCWS_HOME = ../scws PG_CONFIG ==> HH_CONFIG hh_config修改为:HH_CONFIG = ../bin/hh_config
图:zhparser.h和Makefile文件内容修改
4.3 编译安装zhparser
使用修改后的zhparser-master文件安装
#1、安装完成后zhparser-master文件夹可删除 cd zhparser-master #2、编译安装 make && make install
图:安装成功,生成文件/home/hh/hhdb12/lib/zhparser.so等文件
5 创建zhparser解析器,进行校验
连接到目标数据库,创建zhparser解析器
create extension zhparser #创建自定义全文解析器 名称testzhcfg create text search configuration testzhcfg(PARSER = zhparser);
校验成功。在HHDB数据库12.2上安装zhparser成功成功。
小编把恒辉产品社区的链接放在了下方,希望有您需要的!
恒辉产品社区:https://www.deskui.com