■CentOS6/ScientificLinux6にmroongaを導入する
CentOS6/ScientificLinux6にはmysql5.1.xが導入されていて、日本語全文検索にtritonnが利用できないので、後継プロジェクトになっているmroongaを導入し、日本語全文検索を可能にする。実際の手順はほぼmroongaの公式HPの通り。
mroonga
http://mroonga.github.io/ja/
■インストール(mysqlは導入済み)
[code]# rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
※ScientificLinux6は以下のbaseurl修正を行う
# vi /etc/yum.repos.d/groonga.repo
baseurl=http://packages.groonga.org/centos/6/$basearch/
# yum makecache
# yum install -y mysql-mroonga groonga-tokenizer-mecab
# mysql -u root -p
mysql> show engines;
mysql> INSTALL PLUGIN mroonga SONAME ‘ha_mroonga.so’;[/code]
■動作確認方法
[code]# mysql -u root -p
mysql> show engines;
mysql> use test;
mysql> create table diaries ( id INT primary key auto_increment, content varchar(255), fulltext index (content) ) engine = mroonga default charset utf8;
mysql> INSERT INTO diaries (content) VALUES (“明日の天気は晴れでしょう。”);
mysql> INSERT INTO diaries (content) VALUES (“明日の天気は雨でしょう。”);
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST(“晴れ”);[/code]
検索できればOK。
検索スコアでソートは以下で確認。
[code]mysql> INSERT INTO diaries (content) VALUES (“今日は晴れました。明日も晴れるでしょう。”);
mysql> INSERT INTO diaries (content) VALUES (“今日は晴れましたが、明日は雨でしょう。”);
mysql> SELECT *, MATCH (content) AGAINST (“晴れ”) FROM diaries WHERE MATCH (content) AGAINST (“晴れ”) ORDER BY MATCH (content) AGAINST (“晴れ”) DESC;[/code]
■tritonnデータからの移行
tritonnでダンプしたデータのうち以下の部分を修正する(ストレージモードで利用)
[code] FULLTEXT KEY `fullindex` (`body`) /*!50100 WITH PARSER `mecab` */
) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;
↓
FULLTEXT INDEX (`body`)
) ENGINE=mroonga AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;[/code]
これで新しいDBへインポートすればOK。