全文索引的使用(MySQL)

全文索引的使用(MySQL)

全文索引的使用与其他索引不同,在查询语句中需要使用match(列名) against(要搜索的词)来检索数据;


一、全文解析器


全文索引中基本单位是“词”。分词,全文索引是以词为基础的,MySQL默认的分词是所有非字母和数字的特殊符号都是分词符。在检索数据时给定的检索条件也是词;

MySQL中默认的全文解析器不支持中文分词。如果数据含有中文需要更换全文解析器ngram;


二、使用全文索引


Select 投影列 from 表名 where match(全文索引列名) against(“搜索内容”)

(一)修改 emp8 表,为 content 列创建名为 emp8_content_full 的全文索引

Alter table emp8 add fulltext emp8_content_full(content);

(二)向 emp8 表中插入一条数据 content 的值为”hello,bjsxt”

Insert into emp8(content) values(“hello,bjsxt”)

(三)查询 emp8 表中内容包含 bjsxt 的数据。

Select * from emp8 where match(content) against(“bjsxt”)

三、更换全文解析器


在创建全文索引时可以指定ngram解析器
Alter table 表名 add fulltext 索引名(列名) with parser ngram

(一)删除 emp8 表中的 emp8_content_full 全文索引

Drop index emp8_content_full on emp8;

(二)修改 emp8 表,为 content 列添加名称为 emp8_content_full 的全文索引, 并指定
ngram全文解析器。

Alter table emp8 add fulltext emp8_content_full(content) with parser ngram;

(三)向 emp8 表中添加一条数据 content 值为”你好,北京尚学堂”

Insert into emp8(content) values(“你好,北京尚学堂”)

(四)查询 emp8 表中内容包含”北京尚学堂”的数据

Select * from emp8 where match(content) against(“北京尚学堂”)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值