- 说明
- MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索
- 可以利用全文索引来提高匹配的速度
- 比like效率高
- mysql全文检索实现步骤
- 1.对相应的列添加FULLTEXT类型的索引
需要数据库引擎未InnoDB且mysql版本在5.6以上
- 2.修改全文检索相关的系统变量
必须要重启Mysql服务- 全文检索的最小许可字符(默认4,通过 SHOW VARIABLES LIKE 'ft_min_word_len' 可查看),
- 中文通常是两个字就是一个词,所以做中文的话需要修改这个值为2最好
- 设置全文检索的最小字符需要修改mysql的配置文件(ini)
ft_min_word_len = 1
- 3.检索方式
- 自然语言检索: IN NATURAL LANGUAGE MODE
默认的检索方式,如果在要检索的字段后声明方式,那么就会使用此方式- 例:SELECT * FROM articles where MATCH (title,body) AGAINST ('database')
- 布尔检索: IN BOOLEAN MODE
+ 表示AND,表示必须包含
- 表示必须不包含
空格 表示或者- 例:where MATCH (title,body) AGAINST ('red -blue' IN BOOLEAN MODE );
- 自然语言检索: IN NATURAL LANGUAGE MODE
- 1.对相应的列添加FULLTEXT类型的索引
- 常见问题
- 1.mysql中文全文检索无效问题
是因为新建立全文索引的时候没有添加中文检索分词插件ngram,需要在建立全文索引语句后面加上WITH PARSER ngram
- 2.mysql全文索引加and条件问题
索引有个最左匹配原则,book_state放前面走匹配不到索引了
- 3.数据的权重值大于及格值,数据才会被显示出来
- 1.mysql中文全文检索无效问题
10-30
10-17
1309

03-10
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交