欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

wiki多个文件一起导入_wiki.js 使用 postgres 支持中文全文检索

发布时间:2025/5/22 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 wiki多个文件一起导入_wiki.js 使用 postgres 支持中文全文检索 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

之前一直使用 Typora 做知识管理,优点是

  • 免费+全平台 (windows + mac + Linux)
  • 可以配图床(PicGo)
  • 有全文检索(>0.9.61) ,比很多云平台的搜索强。
  • 可以用相对路径引用其他文档,这个特性可以使 Typora 充当一个本地 wiki。
  • 编辑器所见即所得。
  • 缺点是

  • 文档规模大了以后,搜索到文档后很难在左侧文件树定位到文档,从而影响文件组织。
  • 没有前后跳转,在多个文档跳转时容易迷路。
  • 不太好分享给别人,没有权限控制等问题。
  • CommonMark 语义少了一点。
  • 它作为 wiki 的前置处理还是很好用的。配合网盘,多设备同步,个人使用很香。但涉及到分享和权限管理就很头疼,处理这些问题还是需要专业的 wiki 系统。作为一个 wiki 系统,必须支持全文检索才能用。之前捐款的 wiki.js(颜值高) 2.0 版本后支持全文检索,同时也支持 markdown 编辑。这样在 typora 写好后,可以将经常需要查询知识放入 wiki.js 中。

    部署后发现 wiki.js 支持的 postgres 全文检索不支持中文,给它单独配个 ES 又怕家里的 NAS 吃不消,折腾了一天终于让 wikijs 支持中文全文检索了。

    先准备一个支持中文检索的 postgres,我直接使用了一个带 zhparser 插件的 postgres 镜像,比较新的镜像是

    abcfy2/docker_zhparser: A source repo of Postgres Chinese full-test search docker image, based on zhparser.

    选好对应的 postgres 版本后,部署,进入 postgres console 创建 wikijs 的 USER 和 DATABASE

    sudo su - postgres # bash/切换成 psql -- 为postgres用户 生成一个密码 password postgres CREATE USER wikijs WITH PASSWORD 'wikijs'; # 生成用户 CREATE DATABASE wikijs_db OWNER wikijs; # 生成数据库 GRANT ALL PRIVILEGES ON DATABASE wikijs_db to wikijs; ALTER USER wikijs WITH SUPERUSER;

    退出 session,重新连入 wikijs_db 数据库,设置中文全文检索

    psql -U wikijs -d wikijs_db -- https://docs.requarks.io/en/search/postgres CREATE EXTENSION pg_trgm;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;-- [二、PostgerSQL全文检索系统之中文支持_jjj的博客-CSDN博客]( -- https://blog.csdn.net/weixin_40746796/article/details/89209316 -- ) -- 忽略标点影响 ALTER ROLE wikijs SET zhparser.punctuation_ignore = ON; -- 短词复合 ALTER ROLE wikijs SET zhparser.multi_short = ON;-- 看看 chinese_zh 在不在 dF -- 测试一下 select ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');

    退出 session,重新连入 postgres 数据库,关闭 wikijs superuser权限

    psql -U postgres -d postgres ALTER USER wikijs WITH NOSUPERUSER;

    docker 部署一个 wiki.js,环境变量填好,开启后进入容器 console,将 /wiki/server/modules/search/postgres/definition.yml 中的 enum list 添加一个元素 chinese_zh

    enum:...- turkish- chinese_zh

    重启容器,打开 wiki.js 管理 | 搜索引擎 | Database - PostgreSQL | Dictionary Language 选 chinese_zh。

    改好后在入口试试全文检索吧,enjoy!

    总结

    以上是生活随笔为你收集整理的wiki多个文件一起导入_wiki.js 使用 postgres 支持中文全文检索的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。