仅在MyISAM引擎中支持全文本搜索spa
1.建立表时启用全文本搜索排序
e.g. CREATE TABLE productnotes索引
(it
note_id int NOT NULL AUTO_INCREMENT,扩展
prod_id char(10) NOT NULL,搜索
note_text text NULL,查询
PRIMARY KEY(note_id),co
FULLTEXT(note_text)ab
)ENGINE=MyISAM
这里FULLTEXT一个列,也能够指定多个列,用逗号隔开
2.索引以后,使用Match()和Against()执行全文搜索
Match()指定要搜索的列,其值必须与FULLTEXT()定义中的相同
Against()指定要使用的搜索表达式
e.g.SELET note_text FROM productnotes
WHERE Match(note_text) Against('rabbit')
3.查询扩展,找出相关的结果
e.g.SELET note_text FROM productnotes
WHERE Match(note_text) Against('rabbit' WITH QUERY EXPANSION)
4.布尔文本搜索
全文本布尔操做符
+ 包含,词必须存在
- 排除,词必须不出现
> 包含,并且增长等级
< 包含,并且减小等级
() 把词组成子表达式
~ 取消一个词的排序值
* 词尾的通配符
"" 定义一个短语
e.g.
SELECT note_text FROM productnotes
WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE)
匹配包含heavy但不包含任意以rope开始的词的行