Flarum 支持中文关键词搜索优化

21,541 19

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

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

方法

修改 mysql.cnf,加入:

INI
[mysqld]
ngram_token_size=2

修改后需要重建 FULLTEXT 索引:

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)
  1. Chrome 79 Windows 10

    mysql.cnf在哪里呀?

    1. Chrome 80 Windows 10

      <img src="https://img.8b5.cn/2020/02/18/b11828946fb73.png" style="height:100px;width:200px;"/>

    2. Chrome 79 Windows 10

      错误 SQL 查询: ALTER TABLE flarum_posts DROP INDEX content MySQL 返回: 文档 #1146 - Table 'fl.flarum_posts' doesn't exist

  2. QAQ
    Chrome 78 Windows 10

    怎么才能中文注册

    1. Chrome 78 Windows 10

      注册时候显示“用户名只能包含字母、数字及横线 (-)” 不能注册 请问怎么设置?

  3. 木头人
    Chrome 96 Windows 7

    只想夸你,解决了我的问题

  4. Edge 101 Windows 10

    感谢,问题解决了~

  5. 78789797
    Edge 103 Windows 10

    成功了 点赞 好评

发布评论

© 2026 一纸忘忧. 保留所有权利.

一纸忘忧的个人网站,关于技术探索与日常生活,记录 Web 开发、服务端与 DevOps 实践,分享软件工具、数码体验,以及代码之外的见闻与思考。