mroonga - MySQLで高速に全文検索するためのオープンソースのストレージエンジン

2. インストールガイド

バイナリパッケージを使用したインストールではgroonga関連パッケージと共にMySQL関連のパッケージもインストールされます。

32-bit用と64-bit用のパッケージを配布していますが、サーバ用途には64-bitパッケージを利用することをオススメします。32-bit用パッケージはテスト用か開発用にだけ使って下さい。32-bit用パッケージを使った場合は、中程度のサイズのデータでもメモリ不足エラーになることがあります。

それぞれの環境毎にインストール方法を説明します。

2.1. Debian GNU/Linux squeeze

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/debian/ squeeze main
deb-src http://packages.groonga.org/debian/ squeeze main

インストール:

% sudo aptitude update
% sudo aptitude -V -D -y --allow-untrusted install groonga-keyring
% sudo aptitude -V -D -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo aptitude -V -D -y install groonga-tokenizer-mecab

2.2. Debian GNU/Linux wheezy

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/debian/ wheezy main
deb-src http://packages.groonga.org/debian/ wheezy main

インストール:

% sudo aptitude update
% sudo aptitude -V -D -y --allow-untrusted install groonga-keyring
% sudo aptitude -V -D -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo aptitude -V -D -y install groonga-tokenizer-mecab

2.3. Debian GNU/Linux sid

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/debian/ unstable main
deb-src http://packages.groonga.org/debian/ unstable main

インストール:

% sudo aptitude update
% sudo aptitude -V -D -y --allow-untrusted install groonga-keyring
% sudo aptitude -V -D -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo aptitude -V -D -y install groonga-tokenizer-mecab

2.4. Ubuntu 10.04 LTS Lucid Lynx

ノート

Ubuntu本家のuniverseセクションもインストール対象としておくこと

ノート

セキュリティアップデートリポジトリもインストール対象としておくこと

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/ubuntu/ lucid universe
deb-src http://packages.groonga.org/ubuntu/ lucid universe

インストール:

% sudo apt-get update
% sudo apt-get -y --allow-unauthenticated install groonga-keyring
% sudo apt-get -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo apt-get -y install groonga-tokenizer-mecab

2.5. Ubuntu 11.04 Natty Narwhal

ノート

Ubuntu本家のuniverseセクションもインストール対象としておくこと

ノート

セキュリティアップデートリポジトリもインストール対象としておくこと

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/ubuntu/ natty universe
deb-src http://packages.groonga.org/ubuntu/ natty universe

インストール:

% sudo apt-get update
% sudo apt-get -y --allow-unauthenticated install groonga-keyring
% sudo apt-get -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo apt-get -y install groonga-tokenizer-mecab

2.6. Ubuntu 11.10 Oneiric Ocelot

ノート

Ubuntu本家のuniverseセクションもインストール対象としておくこと

ノート

セキュリティアップデートリポジトリもインストール対象としておくこと

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/ubuntu/ oneiric universe
deb-src http://packages.groonga.org/ubuntu/ oneiric universe

インストール:

% sudo apt-get update
% sudo apt-get -y --allow-unauthenticated install groonga-keyring
% sudo apt-get -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo apt-get -y install groonga-tokenizer-mecab

2.7. Ubuntu 12.04 Precise Pangolin

ノート

Ubuntu本家のuniverseセクションもインストール対象としておくこと

ノート

セキュリティアップデートリポジトリもインストール対象としておくこと

/etc/apt/sources.list.d/groonga.list:

deb http://packages.groonga.org/ubuntu/ precise universe
deb-src http://packages.groonga.org/ubuntu/ precise universe

インストール:

% sudo apt-get update
% sudo apt-get -y --allow-unauthenticated install groonga-keyring
% sudo apt-get -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo apt-get -y install groonga-tokenizer-mecab

2.8. CentOS 5

既にディストリビューション由来のMySQLパッケージがインストール済みの場合には事前に削除する必要があります。

既存のMySQLパッケージを削除:

% sudo yum remove 'mysql*'

インストール:

% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-0.noarch.rpm
% sudo yum update
% sudo yum install -y MySQL-server
% sudo service mysql start
% sudo yum install -y mysql-mroonga
(% /usr/bin/mysqladmin -u root password 'new-password')

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo yum install -y groonga-tokenizer-mecab

2.9. CentOS 6

CentOS 6用のパッケージはCentOS 5用のパッケージと違い、ディストリビューション由来のMySQLパッケージ(MySQL 5.1系)を利用します。そのため、ディストリビューション由来のMySQLを削除する必要はありません。

インストール:

% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-0.noarch.rpm
% sudo yum update
% sudo yum install -y mysql-server
% sudo service mysqld start
% sudo yum install -y mysql-mroonga
(% /usr/bin/mysqladmin -u root password 'new-password')

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo yum install -y groonga-tokenizer-mecab

2.10. Fedora 16

インストール:

% sudo rpm -ivh http://packages.groonga.org/fedora/groonga-release-1.1.0-0.noarch.rpm
% sudo yum update
% sudo yum install -y mysql-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストールしてください。

groonga-tokenizer-mecabをインストール:

% sudo yum install -y groonga-tokenizer-mecab

2.11. Mac OS X

インストール:

% brew install https://raw.github.com/mroonga/homebrew/master/mroonga.rb --use-homebrew-mysql

2.12. ソースコードからのインストール

ソースコードからインストールする方法を説明します。パッケージがない環境ではソースコードからインストールすることになります。

2.12.1. 形態素解析(MeCab)について

形態素単位でトークナイズした全文検索索引を使用したい場合は、groongaのインストール前に MeCab をインストールしてください。

2.12.2. ダウンロード

リリース版のソースコードを利用する場合は GitHubのダウンロードページ からtarballをダウンロードしてください。

最新のソースコードを利用する場合は GitHub からcloneして ./autogen.sh を実行してください。(GNU Autotoolsが必要です。)この方法は開発に慣れた方向けなので、そうでない方はtarballを使うことをお勧めします。:

% git clone https://github.com/mroonga/mroonga.git
% mroonga
% ./autogen.sh

2.12.3. 前提条件

MySQLおよびgroongaが既にインストールされている必要があります。

またmroongaをビルドするためにはMySQLのソースコードも必要です。

2.12.4. MySQLのインストール

MySQL 5.5最新版のソースコードをダウンロードし、ビルド&インストールして下さい。

http://dev.mysql.com/downloads/mysql/

mysql-5.5.22を使用し、以下にソースディレクトリが展開されているものと仮定します。

/usr/local/src/mysql-5.5.22

MySQLのバイナリが以下にインストールされているものと仮定します。

/usr/local/mysql

2.12.5. groongaのインストール

groongaの最新版をビルド&インストールして下さい。

http://groonga.org/ja/docs/

ここでは/usr/libなどの標準パスにlibgroongaがインストールされているものと仮定します。

2.12.6. mroongaのビルド

以下のように --with-mysql-source でMySQLソースコードディレクトリ、 --with-mysql-config でmysql_configコマンドのパスを指定してconfigureを実行します。

./configure \
  --with-mysql-source=/usr/local/src/mysql-5.5.22 \
  --with-mysql-config=/usr/local/mysql/bin/mysql_config

groongaを/usr/libなど標準のパス以外にインストールした場合はPKG_CONFIG_PATHを指定する必要があります。例えば、ーーprefix=$HOME/localでgroongaをインストールした場合は以下のようにします。:

./configure \
  PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig \
  --with-mysql-source=/usr/local/src/mysql-5.5.22 \
  --with-mysql-config=/usr/local/mysql/bin/mysql_config

その後、"make"を実行します。

make

2.12.7. mroongaのインストール

"make install"を実行するとMySQLのプラグイン用ディレクトリにha_mroonga.soが配置されます。

make install

その後、mysqldを起動し、mysqlクライアントで接続して"INSTALL PLUGIN"コマンドでインストールします。

mysql> INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';

以下のように"SHOW ENGINES"コマンドで"mroonga"が表示されればmroongaのインストールは完了です。

mysql> SHOW ENGINES;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| mroonga    | YES     | Fulltext search, column base                               | NO           | NO   | NO         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
6 rows in set (0.00 sec)

続いてUDF(ユーザ定義関数)をインストールします。

INSERTを行った際にgroongaにより割当てられるレコードIDを取得するためのlast_insert_grn_id関数をインストールします。

以下のようにCREATE FUNCTIONを実行します。

mysql> CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_mroonga.so';