mysql全文检索

  • 说明
    • 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 );
  • 常见问题
    • 1.mysql中文全文检索无效问题
      是因为新建立全文索引的时候没有添加中文检索分词插件ngram,需要在建立全文索引语句后面加上WITH PARSER ngram
    • 2.mysql全文索引加and条件问题
      索引有个最左匹配原则,book_state放前面走匹配不到索引了
    • 3.数据的权重值大于及格值,数据才会被显示出来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值