使用mysql实现全文检索功能

查看系统默认分片规则 默认INNODB下 最小分片为3位 空格切分

在这里插入图片描述

show variables like '%ft%'; -- 查看默认分配规则
建表
-- 创建表
create table test (
    id int(11) unsigned not null auto_increment,
		product_name varchar(255),
    content text not null,
    primary key(id),
    fulltext key content_index(content)
) engine=INNODB default charset=utf8;
插入测试数据
-- INNODB 默认切片规则为4位 不想修改sql默认分片规则可以手动使用'分隔符'文字分割 末尾带空格 空格是默认切片规则
-- 分隔符不能使用 + - < > * 空格 这些都是系统默认的符号 会被解析成为语句
insert into test (content) values ('1分隔符 '),('2分隔符 '),('3分隔符 ');
insert into test (content) values ('11分隔符 '),('22分隔符 '),('33分隔符 ');
insert into test (content) values ('111分隔符 '),('222分隔符 '),('333分隔符 ');
insert into test (content) values ('1分隔符 2分隔符 3分隔符 '),('11分隔符 22分隔符 33分隔符 ');
insert into test (content) values ('111分隔符 222分隔符 333分隔符 '),('1111分隔符 2222分隔符 3333分隔符 ');
查询
select * from test where match(content) against('22分隔符' in boolean mode);

在这里插入图片描述

多个条件的查询语句
select * from test where product_name = 'tom' and match(content) against('"222分隔符"' in boolean mode) and match(content) against('"111分隔符"' in boolean mode);
发布了200 篇原创文章 · 获赞 97 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/u010838785/article/details/103064030