MySQL 自 5.7 开始支持多语种文字全文索引。使用下面的优化,经测试能搜索到中日韩(CJK) 关键字,其他语言的搜索效果没有测试。
配置数据库文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
添加分词最小字节
ngram_token_size=2
skip-grant-tables //跳过grant-tables,不影响上面
数据库重建索引
mysql
进入数据库,添加下面两段内容:
USE dbName; // 这里替换为数据库的名字
ALTER TABLE posts DROP INDEX content; // 如果你有表前缀,给 posts 加上前缀即可,下面都是如此。
CREATE FULLTEXT INDEX content ON `posts` (`content`) WITH PARSER ngram; // 注意表前缀
另一段
USE dbName; // 这里替换为数据库的名字
ALTER TABLE discussions DROP INDEX title; // 注意表前缀
CREATE FULLTEXT INDEX title ON `discussions` (`title`) WITH PARSER ngram;
最后重启一下MySQL就好了。
systemctl restart mysql