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下载地址下载。

wiki的lua怎么读取js wikijs设置中文_全文检索


要下载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文件夹的目录

wiki的lua怎么读取js wikijs设置中文_windows_02


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)))”

wiki的lua怎么读取js wikijs设置中文_wiki的lua怎么读取js_03

b.未声明标识符

wiki的lua怎么读取js wikijs设置中文_wiki的lua怎么读取js_04


打开xdict.h文件,把下图的中文注释都删掉

wiki的lua怎么读取js wikijs设置中文_wiki的lua怎么读取js_05

(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

  1. 把zhparser-master\Release下的zhparser.dll复制到postgresql安装包的lib目录下
  2. 把zhparser.control、zhparser–1.0.sql或zhparser–2.0.sql、zhparser–unpackaged–1.0.sql都复制到PostgreSQL的安装目录PostgreSQL\share\extension下
  3. 把rules.utf8.ini和dict.utf8.xdb都复制到PostgreSQL\share\tsearch_data下
  4. 打开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下载地址下载的压缩包

wiki的lua怎么读取js wikijs设置中文_wiki的lua怎么读取js_06

修改配置文件

重命名配置文件config.sample.yml为config.yml

wiki的lua怎么读取js wikijs设置中文_数据库_07


打开config.yml,修改config.yml

改为(如下图):(host依据需求可以选择不改,user和pass改成postgresql的用户名密码)

wiki的lua怎么读取js wikijs设置中文_数据库_08

创建wiki数据库

在postgresql数据库中创建wiki数据库

wiki的lua怎么读取js wikijs设置中文_postgresql_09

添加中文分词选项

在wiki\server\modules\search\postgres下的definition.yml中的enum添加chinese_zh

wiki的lua怎么读取js wikijs设置中文_全文检索_10

运行

在wiki文件夹下cmd

输入: node server

运行成功后不要关闭

wiki的lua怎么读取js wikijs设置中文_windows_11

访问

访问: http://localhost:3000/
建议把localhost改为电脑ip。

5. wiki.js的设置

基本设置

填写基本信息,设置管理员邮箱和密码,然后等待安装并输入邮箱和密码。

wiki的lua怎么读取js wikijs设置中文_windows_12

设置中文简体

wiki的lua怎么读取js wikijs设置中文_windows_13


wiki的lua怎么读取js wikijs设置中文_postgresql_14


wiki的lua怎么读取js wikijs设置中文_windows_15

设置搜索引擎

wiki的lua怎么读取js wikijs设置中文_wiki的lua怎么读取js_16


然后就可以快乐的使用中文全文搜索啦。