广告位联系
返回顶部
分享到

MySQL8全文索引的实现方法

Mysql 来源:互联网 作者:佚名 发布时间:2024-08-19 21:43:58 人浏览
摘要

创建索引 之前未尝试过使用MySQL8的全文索引,今天试一试看看什么效果,否则跟不上时代了都。 创建索引非常简单,写句SQL就行。 1 2 3 4 5 6 create table goods( id integer primary key auto_increment, name

创建索引

之前未尝试过使用MySQL8的全文索引,今天试一试看看什么效果,否则跟不上时代了都。

创建索引非常简单,写句SQL就行。

1

2

3

4

5

6

create table goods(

    id integer primary key auto_increment,

    name varchar(255) comment '名称',

    description text comment '描述',

    FULLTEXT idx(description)

) comment '商品';

全文索引一建,一系列的索引表就会自动创建,这里可以按MySQL官方的做法去查一查:

1

select TABLE_ID, NAME, SPACE from information_schema.INNODB_TABLES where NAME like 'study/%';

在这里插入图片描述

使用索引

现在开始,可以插入数据试试索引的使用了。

1

INSERT INTO study.goods (name, description) VALUES ('兰蔻塑颜紧致百肽面霜', '兰蔻塑颜紧致百肽面霜75ml保湿护肤品套装 礼盒生日礼物送女友送妈妈')

全文索引的使用不是LIKE关键字,而是MATCH关键字,而且拆分规则是空格键拆分。比如我下面的查询语句是可以查到内容的:

1

select * from goods where match(description) against('礼盒生日礼物送女友送妈妈');

但是如果我使用生日礼物就查询不到内容了,如:

1

select * from goods where match(description) against('礼盒生日礼物');

这样的查询结果就是空的了。

所以MySQL8的全文索引对中文的支持并不太好。

总结

MySQL8的全文索引,英文程序用用还是可以的,但是中文项目就算了吧,不能自己定义分词器,只能配置个停用词stopword,反正我在项目中是不会使用的。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计