/zhparser

zhparser is a PostgreSQL extension for full-text search of Chinese

Primary LanguageShellOtherNOASSERTION

编译方法

  1. 克隆已经用vs改进的工程:https://github.com/Gerrit1999/zhparser

  2. 使用vs2010或以上的版本打开zhparser\scws\win32\scws.sln

  1. 打开zhparser\zhparser\zhparser.sln

  1. 此时可以看到vs也会把scws的工程加载进来

  1. 修改编译配置支持x64

  1. 先编译scws,生成libscws.lib静态库。

    1. 编译前,在libscws工程 属性 --> C/C++ --> 常规 --> 附加包含目录输入(路径要根据依赖软件的位置相应调整):
    E:\zhparser\scws\libscws;D:\PostgreSQL\10\include;D:\PostgreSQL\10\include\server;D:\PostgreSQL\10\include\server\utils;D:\PostgreSQL\10\include\server\port;%(AdditionalIncludeDirectories)
    
  2. 右键libscws工程,点击生成

  1. 编译zhparser

    1. 将刚才编译完成的zhparser\scws\Releas\libscws.lib文件放到zhparser\zhparser根目录下

    2. 编译前,在zhparser工程 属性 --> C/C++ --> 常规 --> 附加包含目录输入(路径要根据依赖软件的位置相应调整):

    E:\zhparser\scws\libscws;D:\PostgreSQL\10\include;D:\PostgreSQL\10\include\server;D:\PostgreSQL\10\include\server\utils;D:\PostgreSQL\10\include\server\port;D:\PostgreSQL\10\include\server\port\win32;%(AdditionalIncludeDirectories)
    
  2. 属性 --> 链接器 --> 常规 --> 附加库目录输入(路径要根据依赖软件的位置相应调整):

D:\PostgreSQL\10\lib;E:\zhparser\zhparser;%(AdditionalLibraryDirectories)
  1. 右键zhparser工程,点击生成

  2. 将编译完成的zhparser\zhparser\x64\Release\zhparser.dll文件复制到D:\PostgreSQL\10\lib

  3. zhparser/zhparser.controlzhparser/*.sql复制到D:\PostgreSQL\10\share\extension

  1. dict.utf8.xdbrules.utf8.ini复制到D:\PostgreSQL\10\share\tsearch_data

使用

  1. 进入数据库,创建extension
CREATE EXTENSION zhparser;
  1. 添加配置
CREATE TEXT SEARCH CONFIGURATION zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;

#查询已有的解析器
demo-# \dFp         
List of text search parsers   Schema   |   Name   |     Description     
------------+----------+--------------------- 
pg_catalog | default  | default word parser 
public     | zhparser | 
(2 rows)