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.数据的权重值大于及格值,数据才会被显示出来
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_52005127

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值