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

关联章节:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。