Flarum论坛程序默认的搜索功能不好用,原因是默认中文的分词是按英文空格。也试过其他实现方案,比如Elasticsearch、Meilisearch、sonic、Algolia这些搜索插件。但是综合中文搜索效果、成本、配置复杂程度等方面,目前这种无插件版是效果最好的。需要修改的只有mysql数据库的分词参数。
环境信息
- aapanel面板部署;
- mysql版本5.7;
需要注意的是:MySQL自 5.7开始支持中文、日文的全文索引,如果数据库版本较低,此方法可能不行。
修改mysql数据库配置
aapanel面板上直接修改,增加一行,然后点击保存:
ngram_token_size=2

重建数据库索引
修改完mysql数据库配置之后,还需要重建一下mysql帖子表(discussions)和回复表(posts)的索引。
-- posts表的content字段
mysql> use your_database_name;
Database changed
mysql> ALTER TABLE posts DROP INDEX content;
Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> CREATE FULLTEXT INDEX content ON `posts` (`content`) WITH PARSER ngram;
Query OK, 0 rows affected (51.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
-- discussions表的title字段
mysql> use your_database_name;
Database changed
mysql> ALTER TABLE discussions DROP INDEX title;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> CREATE FULLTEXT INDEX title ON `discussions` (`title`) WITH PARSER ngram;
Query OK, 0 rows affected (6.27 sec)
Records: 0 Duplicates: 0 Warnings: 0
注意:上面的your_database_name修改为自己数据库表名称;posts表和discussions根据自己情况修改;
重建索引之后就可以试下效果了。
参考文章:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


![Vercel网站国内加速 – Cloudflare IP优选实现国内Vercel网站极致加速[小白图文教程]-创世AI](https://www.aichuangshi.com/wp-content/uploads/2025/07/Vercel网站国内加速-–-Cloudflare-IP优选实现国内Vercel网站极致加速小白图文教程.png)







暂无评论内容