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 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 の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。