# 配置全局搜索的分词ngram
ngram_token_size=1
innodb_ft_min_token_size = 1
ft_min_word_len = 1
ngram_token_size
官方文档ngram_token_size
,innodb_ft_min_token_size
,ft_min_word_len
官方文档- 配置好后
保存
并重启
mysql - 注意:如果已经创建索引需重新创建
- 创建索引语句
ALTER TABLE 表名称
ADD FULLTEXT INDEX 索引名称 (字段1, 字段2, 字段3)
WITH PARSER ngram;
- 简单使用
SELECT * FROM 表名称
WHERE MATCH(字段1, 字段2, 字段3)
AGAINST("查询关键词")
- 设置搜索模式,官方文档
- 自然语言模式(NATURAL LANGUAGE MODE)
自然语言模式是MySQL 默认的全文检索模式。自然语言模式不能使用操作符,不能指定关键词必须出现或者必须不能出现等复杂查询。 - BOOLEAN模式(BOOLEAN MODE)
BOOLEAN模式可以使用操作符,可以支持指定关键词必须出现或者必须不能出现或者关键词的权重高还是低等复杂查询。mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);