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 實踐,分享軟體工具、數位體驗,以及程式碼之外的見聞與思考。