关联章节:
通配符与正则表达式搜索都存在着一些性能上的限制,但是这些限制都可以通过全文本搜索来解决。在使用全文本搜索时,MySQL不需要分别查看并分析和处理每个行,只需要给各词创建索引,进行快速的匹配。
18.1 启用全文本索引支持
一般而言在创建表时给出全文本搜索的限定,这需要用FULLTEXT来实现:
CREATE TABLE productnotes
(
note_id int NOT NULL AUTO_INCREMENT,
prod_id char(10) NOT NULL,
note_date datetime NOT NULL,
note_text text NULL,
PRIMARY KEY(note_id),
FULLTEXT(note_text)
)ENGINE=MyISAM;
- 不要在导入数据时使用FULLTEXT,应该先在读取所有数据后再修改表定义FULLTEXT
18.1.1 全文本搜索
建立好索引后,使用Match函数和Against函数执行全文本搜索:Match函数指定搜索的列,Against指定要使用的搜索表达式
SELECT note_text
FROM productnotes
WHERE Match(note_text) Against('rabbit');
18.2 其他形式的文本搜索
除了基本的全文本搜索之外,还有全文本查询扩展、布尔文本搜索等。
网友评论