理解全文本搜索
两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持
使用全文本搜索
create table notes(
note_id int not null auto_increment primary key,
note_text text null,
fulltext(note_text)
)engine = MyISAM;
进行全文本搜索
select note_text from notes where match(note_text) against('rabbit');
全文本搜索的一个重要部分就是对结果排序,具有较高等级的行先返回
使用查询扩展
select note_text from notes where match(note_text) against('rabbit' with query expansion);
布尔文本搜索,将上方with query expansion换为in boolean mode
rabbit前用-表示不包含,+表示包含
使用说明
- 许多词出现频率很高,搜索它没有用处,MySQL规定了一条50%规则,如果一个词出现在50%以上的行中,则将它作为一个非用词忽略
- 如果表中的行数少于3行,则全文本搜索不返回结果
- 忽略词中的单引号