前言
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后台清除一下缓存,然后就可以搜索中文内容了,支持文章标题和文章内容。
19 条评论
成功了 点赞 好评
感谢支持
感谢,问题解决了~
不客气
只想夸你,解决了我的问题
客气了
怎么才能中文注册
beta11已支持中文用户名
注册时候显示“用户名只能包含字母、数字及横线 (-)”
不能注册 请问怎么设置?
mysql.cnf在哪里呀?
宝塔面板的在 /etc/my.cnf
重建 FULLTEXT 索引是什么意思?不太懂呢
就是重新建立全文索引
在哪里建立?
错误
SQL 查询:
ALTER TABLE flarum_posts DROP INDEX content
1146 - Table 'fl.flarum_posts' doesn't existMySQL 返回: 文档
你的数据表前缀是不是flarum_
哦哦,我懂了
ok,谢谢