Mysql应用基于mysql全文索引的深入理解
《Mysql应用基于mysql全文索引的深入理解》要点: MYSQL入门前言:本文简单讲述全文索引的应用实例,MYSQL演示版本5.5.24. MYSQL入门 如图点击结尾处的{全文搜索}即可设置全文索引,不同MYSQL版本名字可能不同. 二、设置条件 1.表的存储引擎是MyISAM,默认存储引擎InnoDB不支持全文索引(新版本MYSQL5.6的InnoDB支持全文索引) 2.字段类型:char、varchar和text ? 三、配置 my.ini配置文件中添加 # MySQL全文索引查询关键词最小长度限制 [mysqld] ft_min_word_len = 1 保留后重启MYSQL,执行SQL语句 代码如下: SHOW VARIABLES 查看ft_min_word_len是否设置成功,如果没设置成功请确保 1.确认my.ini正确配置,注意不要搞错my.ini的位置 2.确认mysql已经重启,实在不行重启电脑 其他相关配置请自行百度. 注:重新设置配置后,已经设置的索引必要重新设置生成索引 ? 四、SQL语法 首先生成temp表 MYSQL入门
CREATE TABLE IF NOT EXISTS `temp` (
`id` int(11) NOT NULL AUTO_INCREMENT,`char` char(50) NOT NULL,`varchar` varchar(50) NOT NULL,`text` text NOT NULL,PRIMARY KEY (`id`),FULLTEXT KEY `char` (`char`),FULLTEXT KEY `varchar` (`varchar`),FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
INSERT INTO `temp` (`id`,`char`,`varchar`,`text`) VALUES
(1,'a bc 我 知道 1 23','a bc 我 知道 1 23');
MYSQL入门搜索`char`字段 'a' 值 MYSQL入门
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('a')
MYSQL入门但是你会发现查询无结果?! MYSQL入门
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('a' IN BOOLEAN MODE)
MYSQL入门这样就可以查询出结果了,但是我们不保举使用. MYSQL入门
INSERT INTO `temp` (
`id`,`text`
)
VALUES (
NULL,'7','7'
),(
NULL,'a,bc,我,知道,1,23',23'
),'x','x'
);
MYSQL入门这时你执行以下SQL语句都可以查询到数据 MYSQL入门
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('a');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('bc');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('我');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('知道');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('1');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('23');
MYSQL入门以下SQL搜索不到数据 MYSQL入门
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('b');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('c');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('知');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('道');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('2');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('3');
MYSQL入门如果搜索多个词,请用空格或者逗号隔开 MYSQL入门
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('a x');
SELECT * FROM `temp` WHERE MATCH(`char`) AGAINST ('a,x');
MYSQL入门上面的SQL都可以查询到三条数据 MYSQL入门
$str="测试中文分词";
$so = scws_new();
$so->send_text($str);
$temp=$so->get_result();
$so->close();
var_dump($temp);
MYSQL入门如果安装未成功,请参照官方阐明文档 欢迎参与《Mysql应用基于mysql全文索引的深入理解》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Mysql入门Win2008 R2 mysql 5.5 zip格式mysql 安装与配置
- Mysql入门ubuntu系统中Mysql ERROR 1045 (28000): Access d
- Mysql应用mysql存储过程详解
- MYSQL教程mysql int(1) 与 tinyint(1) 区别
- Mysql学习Ubuntu 设置开放 MySQL 服务远程访问教程
- Mysql应用Mysql中日期和时间函数应用不用求人
- Mysql实例mysql 导出CSV文件 并带表头的方法
- Mysql学习浅谈选择mysql存储引擎的标准
- Mysql学习简单谈谈MySQL中的int(m)
- Mysql入门mysql执行sql文件报错Error: Unknown storage eng