# 查看 MySQL 版本
--by www.qzphp.cn SELECT version();
# 查看 ngram 分词长度
--by www.qzphp.cn SHOW VARIABLES LIKE 'ngram_token_size';
# 在 my.ini 文件中添加分词长度配置:
--by www.qzphp.cn ngram_token_size=2
# 查看停用字的配置
--by www.qzphp.cn SHOW GLOBAL VARIABLES LIKE '%stopword%';
# 在 my.ini 文件中添加禁止使用 MyISAM 存储引擎默认的停用字:
--by www.qzphp.cn ft_stopword_file=""
# 重置索引表,只适用 MyISAM 存储引擎
--by www.qzphp.cn REPAIR TABLE `test` QUICK;
# 查看 InnoDB 存储引擎的默认停用字
--by www.qzphp.cn SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
# 添加自定义停用字表,只用于 InnoDB 存储引擎的停用字设置
--by www.qzphp.cn CREATE TABLE `custom_stopwords`(`value` VARCHAR(30)) ENGINE = INNODB;
# 添加自定义停用字
--by www.qzphp.cn INSERT INTO `custom_stopwords` (`value`) VALUES ('停用字');
# 临时设置自定义的停用字表,只适用 InnoDB 存储引擎,重启 MySQL 服务会失效
--by www.qzphp.cn SET GLOBAL innodb_ft_server_stopword_table = '数据库名/custom_stopwords';
# 在 my.ini 文件中添加 InnoDB 存储引擎的自定义停用字表设置(永久的):
--by www.qzphp.cn innodb_ft_server_stopword_table="数据库名/custom_stopwords"
# 重置索引表,适用 InnoDB 存储引擎
--by www.qzphp.cn OPTIMIZE TABLE `test`;
# 查看 InnoDB 存储引擎的全文检索表当前的分词情况
--by www.qzphp.cn SET GLOBAL innodb_ft_aux_table="数据库名/test"; SELECT * FROM information_schema.INNODB_FT_INDEX_CACHE ORDER BY DOC_ID, POSITION;
# 查看 MySQL 所有的分词长度设置
--by www.qzphp.cn SHOW VARIABLES LIKE '%_%token%';
# 查看 MySQL 所有的全文检索相关设置
--by www.qzphp.cn SHOW VARIABLES LIKE '%ft%';
# 添加测试表
--by www.qzphp.cn CREATE TABLE `test` ( `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR (255) NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `fk_name` (`name`) /*!50100 WITH PARSER `ngram` */ ) ENGINE = MyISAM 或 InnoDB DEFAULT CHARSET = utf8;
# 添加测试数据
--by www.qzphp.cn INSERT INTO `test`(`name`) VALUES ('D-Hanks 溶液');
# 全文检索查询
--by www.qzphp.cn SET @so = 'Hanks 溶液'; SELECT *, MATCH (`name`) AGAINST (@so IN BOOLEAN MODE) AS `score` FROM `test` WHERE MATCH (`name`) AGAINST (@so IN BOOLEAN MODE) ORDER BY `score` DESC;
# 重建中文全文检索索引
--by www.qzphp.cn DROP INDEX `fk_name` ON `test1`; CREATE FULLTEXT INDEX `fk_name` ON `test1` (`name`) WITH PARSER `ngram`;
# 更改存储引擎
--by www.qzphp.cn ALTER TABLE test1 ENGINE = INNODB;