【MySQL必知必会】第18章:全文本搜索

关联章节:

  • 第8章LIKE关键字以及通配符
  • 第9章正则表达式

通配符与正则表达式搜索都存在着一些性能上的限制,但是这些限制都可以通过全文本搜索来解决。在使用全文本搜索时,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 其他形式的文本搜索

除了基本的全文本搜索之外,还有全文本查询扩展、布尔文本搜索等。

你可能感兴趣的:(【MySQL必知必会】第18章:全文本搜索)