mysql全文索引使用条件
首页要先明白mysql的全文检索原理:mysql使用的是一个非常简单的剖析器来将文本分隔成词,空格、标点等,比如‘welcom to you’将分隔为三个词‘welcom’、‘to’、‘you’,但是对中文来说,比如‘人力方网站正式上线’,这将无法分隔,因此目前mysql只支持 英文的全文检索。
mysql全文索引使用条件有两个,一个是对表存储引擎类型的要求,二是对设置全文索引字段的类型的要求。
- 表的存储引擎是MyISAM,默认存储引擎InnoDB不支持全文索引(新版本MYSQL5.6的InnoDB支持全文索引)
- 字段类型:只有字段类型为char、varchar和text的字段才能设置全文索引。
mysql如何创建全文索引
全文索引可以在创建表的时候设置,也可以在已有的表中进行设置。
1.创建表时设置全文索引,具体代码如下:
CREATE TABLE IF NOT EXISTS `category` (
`id` int(10) NOT NULL auto_increment,
`fid` int(10) NOT NULL,
`catname` char(255) NOT NULL,
`addtime` char(10) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `catname` (`catname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
从上面代码可以看出,设置某字段为全文索引的SQL代码为FULLTEXT KEY `catname` (`catname`)
2.再已有的表中为某字段设置全文索引:
ALTER TABLE <table> ADD FULLTEXT (fields)
或者直接在myphpadmin控制台中点击结尾处的{全文搜索}即可设置全文索引,不同MYSQL版本名字可能不同。
mysql全文索引的基本语法
全文索引搜索语法
MATCH (列名1, 列名2,…) AGAIN