当前位置: 首页 > 工具软件 > zhparser > 使用案例 >

PostgreSQL12 windows zhparser插件安装

拓拔阎宝
2023-12-01

zhparser

https://github.com/amutu/zhparser

1、scws编译

因为zhparser需要使用scws进行中文分词先编译scws,zhparser的README有scws源码的下载地址(http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2),下载解压后win32目录有vs2008工程直接升级为vs2017,打开后里面包含两个工程我们需要的只是libscws工程(scws工程引用了php的东西 不用编译),修改libscws项目配置以便编译通过:xdict.h需要转换为utf16编码、config_win32.h注释掉logf定义以及一些工程项目的配置如支持x64编译;

2、编译zhparser

zhparser就两个.c跟.h文件,直接vs创建个新dll工程把这两个文件加入进去,加入包含目录libscws、PostgreSQL12安装目录下的include相关的目录(例 PostgreSQL\12\include\server PostgreSQL\12\include PostgreSQL\12\include\server\port\win32)

加入依赖的库postgres.lib、上面的libscws.lib 编译zhparser成功

3、插件加入PostgreSQL

zhparser.dll => PostgreSQL12安装目录的lib(PostgreSQL\12\lib);

zhparser.control zhparser--2.1.sql zhparser--unpackaged--1.0.sql => PostgreSQL12安装目录的PostgreSQL\12\share\extension;

rules.utf8.ini dict.utf8.xdb => PostgreSQL12安装目录的PostgreSQL\12\share\tsearch_data;

4、使用

zhparser的README有使用例子

也可参考这篇文章 https://zhuanlan.zhihu.com/p/30801646

-- create the extension
CREATE EXTENSION zhparser;

-- make test configuration using parser
CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);

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

create index idx_name on table using gin(to_tsvector('parser_name', field));

SELECT * FROM table WHERE to_tsvector('parser_name', field) @@ '测试'

SELECT * FROM table WHERE to_tsvector('parser_name', field) @@ to_tsquery('parser_name','测试')

 

 

 类似资料: