Flarum首页中文关键字搜索优化

MySQL 自 5.7 开始支持多语种文字全文索引。使用下面的优化,经测试能搜索到中日韩(CJK) 关键字,其他语言的搜索效果没有测试。

请注意,此方法会在一定程度上影响数据库性能,且还是会存在部分标题中的关键词无法搜索到的问题,但总体来说这个方法是目前成本最低、最稳定的方法。

1,找到数据库配置文件:我的配置文件在服务器上的路径:
/etc/my.cnf

在配置文件中加入以下内容:

2,在配置文件中加入以下内容:

[mysqld]
ngram_token_size=2

3,前往 phpMyAdmin 重建数据库索引。
分别执行以下两段:

第一次执行

USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字
ALTER TABLE posts DROP INDEX content; // 如果你有表前缀,给 posts 加上前缀即可,下面都是如此。
CREATE FULLTEXT INDEX content ON `posts` (`content`) WITH PARSER ngram; // 注意表前缀

第二次执行:

USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字
ALTER TABLE discussions DROP INDEX title; // 注意表前缀
CREATE FULLTEXT INDEX title ON `discussions` (`title`) WITH PARSER ngram;

4,完成!等待一会儿,强制刷新浏览器,查看效果。

可以清除下缓存