4月
11
CentOS6/ScientificLinux6にはmysql5.1.xが導入されていて、日本語全文検索にtritonnが利用できないので、後継プロジェクトになっているmroongaを導入し、日本語全文検索を可能にする。実際の手順はほぼmroongaの公式HPの通り。
mroonga
http://mroonga.github.io/ja/
■インストール(mysqlは導入済み)
- # 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';
■動作確認方法
- # 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("晴れ");
検索できればOK。
検索スコアでソートは以下で確認。
- 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;
■tritonnデータからの移行
tritonnでダンプしたデータのうち以下の部分を修正する(ストレージモードで利用)
- 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;
これで新しいDBへインポートすればOK。
CentOS6/ScientificLinux6にmroongaを導入する http://t.co/jZ3ekjASUX #mysql #日本語全文検索
RT @isnext_blog: CentOS6/ScientificLinux6にmroongaを導入する http://t.co/jZ3ekjASUX #mysql #日本語全文検索