MySQLコマンドやSQL文に関する各種メモ書き

MySQL標準の日本語全文検索を使用する

MySQL5.7以降ではデフォルトで InnoDBで日本語全文検索が使えるようになりました。

● MySQLのバージョンを確認する

SELECT version();

● FULLTEXT インデックスを貼る

例1. テーブル「mytable」のカラム「title」「content」に全文検索用インデックスを作成する

ALTER TABLE mytable ADD FULLTEXT KEY (title, content) WITH PARSER ngram;

例2. インデックス名を指定して全文検索用インデックスを作成する

対象テーブル「item_table」対象カラム「item_name」
インデックス名「item_name_fulltext_idx」
でフルテキストインデックスを作成する

CREATE FULLTEXT INDEX `item_name_fulltext_idx` ON `item_table` (`item_name`) WITH PARSER ngram;

● 全文検索の設定

デフォルトは4文字以上の単語が対象ですがその対象を2文字に変更することができます。

1. my.cnf に設定を記述

/etc/my.cnf

[mysqld]
innodb_ft_min_token_size=2

2. MySQLをリスタート

3. FULLTEXTインデックスを貼り直す

一度削除してから再度作成すればOKです。

・インデックスの貼り直し

DROP INDEX item_name_fulltext_idx ON item_table ;
CREATE FULLTEXT INDEX `item_name_fulltext_idx` ON `item_table` (`item_name`) WITH PARSER ngram ;

関連エントリー

No.1274
10/26 20:06

edit

全文検索