MySQL 自 5.7 开始支持多语种文字全文索引。此方法不完美,会在一定程度上影响数据库性能,且还是会存在部分标题中的关键词无法搜索到的问题。本站通过 docker-compose 进行的编排。
增加 mysql 启动参数 --ngram_token_size=2
前往数据库容器,进入 mysql shell 命令行。
docker exec -it flarumdb /bin/bash
mysql -u flarum -p
重建数据库索引。
use flarum;
ALTER TABLE flarum_posts DROP INDEX content;
CREATE FULLTEXT INDEX content ON `flarum_posts` (`content`) WITH PARSER ngram;
ALTER TABLE flarum_discussions DROP INDEX title;
CREATE FULLTEXT INDEX title ON `flarum_discussions` (`title`) WITH PARSER ngram;
等待一会搜索中文看看效果。