Flarum 原生 MySQL 支持中文搜索
此办法仅支持MySQL5.7+
或 MySQL8+
的版本,如果你使用了 MariaDB
作为数据库,请先更换为 MySQL
再继续如下操作。
修改MySQL配置
[mysqld]
ngram_token_size = 2
修改后请重启MySQL服务器,使配置生效。
相关命令行
# 查看 my.cnf 所在位置
$ whereis my.cnf
my.cnf: /etc/my.cnf
# 查看是否已存在此字段(若无返回行,则不存在)
grep ngram_token_size /etc/my.cnf
# 在 `[mysqld]` 下添加
sed -i '/\[mysqld\]/a ngram_token_size = 2' /etc/my.cnf
# 重载 MySQL
systemctl reload mysql
重建贴子表索引
这两组代码要在 Flarum
数据库下执行,以重建全文索引。(注意修改自己数据库的表前缀
)
ALTER TABLE discussions DROP INDEX title;
CREATE FULLTEXT INDEX title ON discussions (title) WITH PARSER ngram;
ALTER TABLE posts DROP INDEX content;
CREATE FULLTEXT INDEX content ON posts (content) WITH PARSER ngram;
参考文章:https://www.rehiy.com/post/531/