mysql的表中的字段进行全文搜索,(学习地址)[https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html]

建立指定需要进行全文搜索的字段的的索引

索引创建

1
2
3
4
ALTER TABLE `user` 
ADD FULLTEXT INDEX `ft_user` (`name`, `email`, `phone`),
ADD INDEX `index9` (`name` ASC, `email` ASC, `phone` ASC);
;

查询

1
2
3
4
5
#无法查询一个字段
SELECT id,name,phone,email from user where match(name,email,phone) against("张" IN BOOLEAN MODE);

#查询成功
SELECT id,name,phone,email from user where match(name,email,phone) against("张小" IN BOOLEAN MODE);

window解决问题

在my.ini配置文件中添加如下

1
2
innodb_ft_min_token_size=1
ngram-token-size=1

重启mysql server

reset index

1
2
3
ALTER TABLE `yfaf`.`user` 
ADD FULLTEXT INDEX `index9` (`name`, `phone`, `email`) WITH PARSER ngram;
;

linux解决问题

在/etc/mysql/mysql.conf.d/mysqld.cnf配置文件中添加如下

注意项:需要在[mysqld]的组下添加

1
2
3
4
[mysqld]
.....
innodb_ft_min_token_size=1
ngram-token-size=1

重启mysql server

reset index

`mysql
ALTER TABLE yfaf.user
ADD FULLTEXT INDEX index9 (name, phone, email) WITH PARSER ngram;
;

最后更新: 2019年08月27日 22:50

原始链接: https://chenadminchen.github.io/2018/11/22/mysql-full-text-search/

× 请我吃糖~
打赏二维码