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::
感谢,问题解决了~
不客气
成功了 点赞 好评
感谢支持