Flarum 支持中文关键词搜索优化
21,541 19
Flarum 本身对中文就很不友好,随着版本迭代,慢慢也开始对中文进行了优化,比如支持中文用户名注册,这个确实是挺有用的。然而最新的 beta11 版本,却还是不支持中文搜索内容,好在 MySQL 自 5.7 开始支持中文、日文的全文索引。
另外,Flarum 开发者也曾说过,在将来的版本会使用 ElasticSearch 分布式全文搜索引擎,因为 ElasticSearch 比此方法好,但直到现在也没有用上。请注意,此方法会在一定程度上影响数据库性能。
方法
修改 mysql.cnf,加入:
INI INI
[mysqld]
ngram_token_size=2
修改后需要重建 FULLTEXT 索引:
SQL SQL
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)mysql.cnf在哪里呀?
宝塔面板的在 /etc/my.cnf
ok,谢谢
重建 FULLTEXT 索引是什么意思?不太懂呢
就是重新建立全文索引
在哪里建立?
<img src="https://img.8b5.cn/2020/02/18/b11828946fb73.png" style="height:100px;width:200px;"/>
错误 SQL 查询: ALTER TABLE flarum_posts DROP INDEX content MySQL 返回: 文档 #1146 - Table 'fl.flarum_posts' doesn't exist
你的数据表前缀是不是flarum_
哦哦,我懂了
怎么才能中文注册
beta11已支持中文用户名
注册时候显示“用户名只能包含字母、数字及横线 (-)” 不能注册 请问怎么设置?
只想夸你,解决了我的问题
客气了 ::aru:proud::
感谢,问题解决了~
不客气
成功了 点赞 好评
感谢支持