全文搜索的布尔模式可以让我们控制多单词搜索操作中的许多细节。要想进行这种模式的搜索,需要在AGAINST()函数里在搜索字符串的后面加上IN BOOLEAN MODE短语。布尔模式的全文搜索有以下特点。
"50%规则"不再起作用,即使是在超过一半的数据行里出现过的单词也可以被这种搜索匹配出来。
查询结果不再按照相关程度排序。
在搜索一个短语时,你可以要求所有单词必须按照某种特定的顺序出现。如果是搜索一个短语,需要把构成该短语的所有单词用双引号括起来;如果数据行包含的单词按照给定的顺序排列,才被认为是一个匹配。
mysql> SELECT * FROM apothegm
-> WHERE MATCH(attribution, phrase)
-> AGAINST('"bell book and candle"' IN BOOLEAN MODE);
+---------------------+------------------------+
| attribution | phrase |
+---------------------+------------------------+
| Miguel de Cervantes | Bell, book, and candle |
+---------------------+------------------------+
布尔模式的全文搜索还可以在没被包括在FULLTEXT索引里的数据列上进行,但这要比搜索有FULLTEXT索引的数据列慢很多。
在进行布尔搜索时,还可以给搜索字符串里的单词加上一些修饰符。在单词的前面加