前言

Flarum本身对中文就很不友好,随着版本迭代,慢慢也开始对中文进行了优化,比如支持中文用户名注册,这个确实是挺有用的。然而最新的beta11版本,却还是不支持中文搜索内容,好在MySQL自5.7开始支持中文、日文的全文索引。

另外,Flarum开发者也曾说过,在将来的版本会使用ElasticSearch分布式全文搜索引擎,因为ElasticSeatch比此方法好,但直到现在也没有用上。请注意,此方法会在一定程度上影响数据库性能。

方法

修改 mysql.cnf,加入:

[mysqld]
ngram_token_size=2

修改后需要重建 FULLTEXT 索引

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;

重建好之后到flarum后台清除一下缓存,然后就可以搜索中文内容了,支持文章标题和文章内容。

如果觉得我的文章对你有用,请随意赞赏