wiki.js+windows+PostgreSQL搭建知识库,并实现中文全文搜索
- 1. 相关网址
- 2. 安装postgresql
- postgresql下载。
- 安装postgresql
- 安装Stack Builder
- 3. scws和zhparser下载、编译
- 下载 scws
- 下载 zhparser
- 编译 scws
- 编译 zhparser
- (1)右键点击libscws
- (2)右键点击libscws生成
- (3)右键zhparser
- (4)插件加入PostgreSQL
- 4. 安装wiki.js
- 创建文件夹
- 解压
- 修改配置文件
- 创建wiki数据库
- 添加中文分词选项
- 运行
- 访问
- 5. wiki.js的设置
- 基本设置
- 设置中文简体
- 设置搜索引擎
1. 相关网址
官网: https://wiki.js.org/node.js安装:https://blog.csdn.net/weixin_42870215/article/details/123852069Wiki.js下载地址:https://wwd.lanzouq.com/iTSRJ06e48udpostgresq下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloadsscws下载地址:http://www.xunsearch.com/scws/download.phpzhparser下载地址:https://github.com/kerneltravel/zhparser注意事项:node.js安装过程中,要把node.js的安装目录写在nodejs文件夹下。例如:D:\nodejs
2. 安装postgresql
postgresql下载。
在相关网址的postgresql下载地址下载。
要下载32位的,因为后续支持中文全文搜索功能的插件zhparser是32 位的,启动zhparser需要32位的postgresql。
如下载64位postgresql的话,启动zhparser插件会显示错误:
“DLL加载失败:%1不是有效的Win32应用程序”
安装postgresql
双击下载的安装包安装postgresql,除了第二个页面可以改安装路径,其他的地方都不用改。
安装Stack Builder
安装包可能会弹出安装Stack Builder
1.第一个页面选择:PostgreSQL 10(x32) on port 5432 或 PostgreSQL 10(x64) on port 5432(基于安装的PostgreSQL是32位还是64位);
2.第二个页面选择:Add-ons, tools and utilities下的EDB Language Pack v1.0-5;
3.第三个页面可以改一下安装路径;
4.最后的Language Selection选择English-English;
其他的都不用改,点next或finish即可。
3. scws和zhparser下载、编译
下载 scws
在相关网址中下载scws,下载scws-1.2.3,并解压缩后生成文件夹scws-1.2.3,把文件夹scws-1.2.3重命名为scws。
下载 zhparser
在相关网址中下载zhparser,下载后解压生成文件夹zhparser-master,把文件夹zhparser-master和文件夹scws放在同一个文件夹下。
编译 scws
用VS(最好是比较新的版本,我用的2022)打开scws\win32下的scws.sln(如需要迁移文件则根据VS的指示迁移),然后关闭VS。
编译 zhparser
用VS(最好是比较新的版本,我用的2022)打开zhparser-master文件夹下的zhparser.sln(如果libscws未能找到,则重新加载)。
(1)右键点击libscws
属性 --> C/C++ --> 常规的‘附加包含目录’ 添加头文件目录(如下图)。
其中:
PostgreSQL文件夹是PostgreSQL数据库的安装目录
Postgresqlzh文件夹是放scws文件夹和zhparser-master文件夹的目录
D:\postgresqlzh\scws\libscws
D:\PostgreSQL\include
D:\PostgreSQL\include\server
D:\PostgreSQL\include\server\utils
D:\PostgreSQL\include\server\port
D:\PostgreSQL\include\server\port\win32
D:\PostgreSQL\include\server\port\win32_msvc
%(AdditionalIncludeDirectories)
(2)右键点击libscws生成
可能会发生的错误:
a.C2059 语法错误:“(”
如果是下面代码的语法错误,则删除config_win32.h中“#define logf(x) ((float)log((double)(x)))”
b.未声明标识符
打开xdict.h文件,把下图的中文注释都删掉
(3)右键zhparser
同样把上面的头文件路径添加到zhparser的头文件目录中,并在 属性 --> 链接器 --> 常规中的’附加库目录’添加以下路径:
D:\PostgreSQL\lib
D:\postgresqlzh\zhparser-master
%(AdditionalLibraryDirectories)
可能会发生的错误:
error LNK2019:无法解析的外部符号 __imp__sprintf 和 error LNK2019:无法解析的外部符号 __imp__printf。
解决方法:在项目属性->链接器->输入里面加入库legacy_stdio_definitions.lib
(4)插件加入PostgreSQL
- 把zhparser-master\Release下的zhparser.dll复制到postgresql安装包的lib目录下
- 把zhparser.control、zhparser–1.0.sql或zhparser–2.0.sql、zhparser–unpackaged–1.0.sql都复制到PostgreSQL的安装目录PostgreSQL\share\extension下
- 把rules.utf8.ini和dict.utf8.xdb都复制到PostgreSQL\share\tsearch_data下
- 打开PostgreSQL的命名行,输入:
CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION pg_catalog.chinese_zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;
SET zhparser.punctuation_ignore = ON;
SET zhparser.multi_short = ON;
4. 安装wiki.js
创建文件夹
本地创建wiki文件夹。例如D:\wiki
解压
解压在wiki.js下载地址下载的压缩包
修改配置文件
重命名配置文件config.sample.yml为config.yml
打开config.yml,修改config.yml
改为(如下图):(host依据需求可以选择不改,user和pass改成postgresql的用户名密码)
创建wiki数据库
在postgresql数据库中创建wiki数据库
添加中文分词选项
在wiki\server\modules\search\postgres下的definition.yml中的enum添加chinese_zh
运行
在wiki文件夹下cmd
输入: node server
运行成功后不要关闭
访问
访问: http://localhost:3000/
建议把localhost改为电脑ip。
5. wiki.js的设置
基本设置
填写基本信息,设置管理员邮箱和密码,然后等待安装并输入邮箱和密码。
设置中文简体
设置搜索引擎
然后就可以快乐的使用中文全文搜索啦。