- MyISAMのみ
- 設定ファイルで検索対象の最低文字数を設定する(デフォルトは4)
[mysqld]
ft_min_word_len=1 - TEXT型の列などにスペース区切り等で区切ったデータを入れ、FULLTEXTインデックスを付与する
- 該当データが全体の50%を超えるような単語は検索対象から除外されるので注意
- 日本語でもOK
SELECT * FROM members
WHERE MATCH keywords AGAINST('メロン');
さらに、マッチはしないが関連しそうなデータも含める「クエリ拡張」というオプションもある。
SELECT * FROM members「注記 :ブラインド クエリ拡張は関連性のない雑多な資料も戻しがちなため、検索フレーズが短い時にだけ使用することをお薦めします」そうだが。
WHERE MATCH keywords AGAINST('ソーダ' WITH QUERY EXPANSION);
参考:
MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.7 全文検索関数
MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.7.2 クエリ拡張を伴う全文検索
[ヅラド] MySQL を使った全文検索 (Full-Text Search)
MySQL FULLTEXT + Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボ
0 件のコメント:
コメントを投稿