Ubuntu 12.04にmroongaをインストール
groongaのMySQL版であるmroongaをインストールして、MySQLのInnoDBを日本語の全文検索に対応させよう。
groongaのリポジトリを追加
/etc/apt/sources.list.d/groonga.list
を以下の内容で作成する。
deb http://packages.groonga.org/ubuntu/ precise universe deb-src http://packages.groonga.org/ubuntu/ precise universe
apt-getでインストール
ここら辺を参考にインストール。 http://mroonga.org/ja/docs/install.html
以下はトクナイザーとしてMeCabを使う場合。
> sudo apt-get update > sudo apt-get -y --allow-unauthenticated install groonga-keyring > sudo apt-get update > sudo apt-get -y install mysql-server-mroonga > sudo apt-get -y install groonga-tokenizer-mecab
インストールの確認
こんなSQLを投げて
SHOW VARIABLES LIKE 'mroonga_libgroonga_version';
こんな感じに出力されればOK
+-------------------------------------+ | Variable_name | Value | +----------------------------+--------+ | mroonga_libgroonga_version | 3.1.1 | +-------------------------------------+
使い方
mroongaをInnoDBのラッパーモードとして利用するにはENGINE = mroonga COMMENT = ‘engine "innodb”’
と指定する。
これでトランザクションも日本語全文検索も使える。
CREATE TABLE hoge ( id INTEGER AUTO_INCREMENT, PRIMARY KEY (id), text TEXT NOT NULL, FULLTEXT INDEX (text) ) ENGINE = mroonga COMMENT = ‘engine "innodb”’; SELECT * FROM hoge WHERE MATCH (text) AGAINST (“日本語でおk”);
既存のテーブルを日本語の全文検索に対応させる
テーブルのDBエンジンとしてmroongaなInnoDBのラッパーモードを指定して、FULLTEXT INDEXを追加すればOK
ALTER TABLE テーブル名 ENGINE = mroonga COMMENT = 'engine "innodb"'; CREATE FULLTEXT INDEX テーブル名 ON テーブル名 (インデックス名);
ちなみに、インデックス名のデフォルト値はテーブル名と同じ。