Wiki JS 中文搜索

作者: lesca 分类: Tutorials 发布时间: 2022-11-23 16:11

引子

Wiki JS 推荐使用 PostgreSQL 作为默认数据库,但是其 PostgreSQL 的词典配置中是没有 Chinese 选项的。

由于是第一次接触PostgreSQL,经过一番调查,发现官方的 PostgreSQL 镜像是没有中文断词支持的。为了解决这个问题,需要自己编译中文断词插件,我选择的是 pg_jieba。由于是 Docker 环境,因此还需要生成一个 Docker 镜像。

项目和镜像已经开源,请前往我的 GitHub:
https://github.com/lesca/postgres-jieba

用法

1. 配置容器

version: "3"
services:

  db:
    image: lesca/postgres-jieba
    container_name: wiki_db
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: "xxx"
      POSTGRES_USER: xxx
    logging:
      driver: "none"
    restart: unless-stopped
    volumes:
      - ./dbdata/:/var/lib/postgresql/data

  wiki:
    image: requarks/wiki:2
    container_name: wiki
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: xxx
      DB_PASS: "xxx"
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "3000:3000"
      - "3443:3443"

  # pgadmin - postgresql database explorer
  # use only if you want to edit the database 
  pgadmin:
    image: dpage/pgadmin4
    container_name: wiki_pgadmin
    depends_on:
      - db
    environment:
      PGADMIN_DEFAULT_EMAIL: xxx@xxx.com
      PGADMIN_DEFAULT_PASSWORD: xxx
    restart: unless-stopped
    ports:
      - "14080:80"

2. 配置 Wiki

  1. 进入 wiki 后台 – 搜索引擎 – 选择“Database – PostgreSQL” – 选择 simple,应用
  2. pgadmin 连接数据库,找到表searchEngines,扎到属性 postgres 将值 {"dictLanguage":"simple"} 改为 {"dictLanguage":"jiebacfg"}
  3. 进入 wiki 后台 – 搜索引擎。这时选项为空,不用管它。点击“重建索引”

注意事项

  1. pgadmin 仅临时用于修改数据库,用完后记得将其关闭(注释掉即可)。
  2. 修改后,引擎配置选项为空,不用管它,可以随时改回去。每次更改都要重新索引。

参考

[1] 我与尼古拉斯的讨论

版权声明

本文出自 Lesca 技术宅,转载时请注明出处及相应链接。

本文永久链接: https://www.lesca.cn/archives/wiki-js-chinese-search-jieba.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!