引子
由于 PostgreSQL 默认没有中文字典,需要使用分词插件来实现中文断词和搜索。否则,只有只能搜索短语或者句子。
为了解决这个问题,使用包含断词插件的 PostgreSQL。我使用 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
- 进入 wiki 后台 – 搜索引擎 – 选择“Database – PostgreSQL” – 选择 simple,应用
- 用
pgadmin
连接数据库,找到表searchEngines
,扎到属性postgres
将值{"dictLanguage":"simple"}
改为{"dictLanguage":"jiebacfg"}
- 进入 wiki 后台 – 搜索引擎。这时选项为空,不用管它。点击“重建索引”
注意事项
- pgadmin 仅临时用于修改数据库,用完后记得将其关闭(注释掉即可)。
- 修改后,引擎配置选项为空,不用管它,可以随时改回去。每次更改都要重新索引。
参考
[1] 我与尼古拉斯的讨论
转载请注明:我是IT » Wiki JS 中文搜索