MATCH Against In Boolean Mode
先週書いた、FULLTEXT と MATCH ….AGAINSTの続きを書きたいと思います。
使い方が便利で検索したい条件を自由に決める事ができるので、結構気に入っています。
「LIKE」の機能と同じですが、LIKE検索に比べて数倍から数十倍の速度で実行できる大きな特徴があるようです。
MATCH AGAINST に「IN Boolean Mode」を利用して、
検索条件をもっと詳しく設定する事が出来ます。
いろいろ使い方がありますので、メモとして書きたいと思います。
使い方と意味
1 2 | sql> select * from hoge where match( myText ) against( '+american -newyork' in boolean mode ); |
結果として、「american」という単語を含み、「newyork」という単語を含まない行が検出されます。
1 | 'newyork boston' |
ふたつの単語のうち、すくなくともひとつを含む行を検出する。
1 | '+newyork +Boston' |
両方の語を含む行を検出する。
1 | '+newyork boston' |
単語 「newyork」 を含む行を検出し、さらに 「boston」 を含んでいる場合は行を高く順位づける。
1 | '+newyork -boston' |
単語 「newyork」 を含み、「boston」 を含まない行を検出する。
1 | '+newyork ~boston' |
単語 「newyork」 を含む行を検出するが、行が単語 「boston」 も含む場合は、含まないものよりも行を低く順位づける。これは、 「boston」 が含まれると完全に除外される ‘+newyork -boston’ の検索より柔らかい。
1 | '+newyork +(>boston <sanfrancisco)' |
「newyork」 と 「boston」 、もしくは 「newyork」 と 「sanfrancisco」 ( 順序は不問 ) を含む行を検出するが、「newyork boston」 を 「newyork sanfrancisco」 より高く順序づける。
1 | 'new*' |
単語 「new」 、「news」 、「newyork」を含む行を検出する。
Author Profile
スターフィールド編集部
SHARE