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

2. インストールガイド

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

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

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

2.1. 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 apt-get update
% sudo apt-get -y --allow-unauthenticated install groonga-keyring
% sudo apt-get update
% sudo apt-get -y install mysql-server-mroonga

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

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

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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo apt-get -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.2. Debian GNU/Linux jessie

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

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

インストール:

% 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

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

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

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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo apt-get -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

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 update
% 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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo aptitude -V -D -y install groonga-normalizer-mysql

ノート

'utf8_unicode_ci'や'utf8mb4_unicode_ci'は今後のリリースでサポート予定です。

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.4. 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 update
% sudo apt-get -y install mysql-server-mroonga

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

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

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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo apt-get -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.5. Ubuntu 13.10 Saucy Salamander

ノート

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

ノート

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

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

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

インストール:

% 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

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

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

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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo apt-get -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.6. CentOS 5

CentOS 5では、Mroonga 3.09のリリースからディストリビューション由来のMySQLパッケージ(MySQL 5.5系)を利用します。

インストール:

% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
% sudo yum makecache
% sudo yum install -y mysql55-mysql-server
% sudo /etc/init.d/mysql55-mysqld start
% sudo yum install -y mysql55-mroonga
(% sudo scl enable mysql55 mysqladmin -u root password 'new-password')

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

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

% sudo yum install -y groonga-tokenizer-mecab

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo yum install -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.7. CentOS 5 (非推奨)

The old version of Mroonga had also provided MySQL 5.6 packages as exceptional case. This is obsolete and not recommended way. The mysql-mroonga package is deprecated on CentOS 5 since Mroonga 3.09. We recommend to use mysql55-mroonga pakcages on CentOS 5.

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

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

% sudo yum remove 'mysql*'

インストール:

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

2.8. CentOS 6

CentOS 6では、Mroonga 4.01のリリースからCentOSのSCLを使ったMySQLパッケージ(MySQL 5.5系)を利用します。

インストール:

% sudo yum install centos-release-SCL
% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
% sudo yum makecache
% sudo yum install -y mysql mysql55-mysql-server
% sudo /etc/init.d/mysql55-mysqld start
% sudo yum install -y mysql55-mroonga
(% sudo scl enable mysql55 mysqladmin -u root password 'new-password')

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

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

% sudo yum install -y groonga-tokenizer-mecab

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo yum install -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.9. CentOS 6(非推奨)

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

ノート

Mroonga 4.01からは、mysql-mroongaパッケージは非推奨になっています。代わりにmysql55-mroongaパッケージを使ってください。

インストール:

% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
% sudo yum makecache
% 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

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo yum install -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.10. Fedora 20

Fedora 19からはMariaDBがMySQLのデフォルト実装となります。

Mroongaには二つの選択肢があり、一つはMariaDBと一緒に使うこと、もう一つはMySQL (community-mysql)と一緒に使うことです。

MySQL (community-mysql)向けにMroongaをインストール:

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

MariaDB向けにMroongaをインストール:

% sudo rpm -ivh http://packages.groonga.org/fedora/groonga-release-1.1.0-1.noarch.rpm
% sudo yum makecache
% sudo yum install -y mariadb-mroonga

ノート

MariaDBとMySQL (community-mysql)パッケージは排他的です。例えば mysql-mroonga を使うには競合している mariadb パッケージをまず削除する必要があります。

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

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

% sudo yum install -y groonga-tokenizer-mecab

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

% sudo yum install -y groonga-tokenizer-mecab

MySQL互換のCOLLATIONとして'utf8_general_ci'や'utf8mb4_general_ci'、'utf8_unicode_ci'や'utf8mb4_unicode_ci'を使うには、groonga-normalizer-mysqlパッケージをインストールしてください。

groonga-normalizer-mysqlをインストール:

% sudo yum install -y install groonga-normalizer-mysql

ノート

MySQL互換のCOLLATIONを指定しない場合には、MySQLと互換性のないGroongaの照合順序が使われます。MySQL互換な大文字・小文字を区別しないCOLLATIONは'utf8_general_ci'、'utf8mb4_general_ci'、'utf8_unicode_ci'、'utf8mb4_unicode_ci'です。

2.11. Mac OS X

インストール:

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

トークナイザーとして MeCab を利用したい場合は --with-mecab オプション付きでインストールしてください。

MeCabサポート付きでインストール:

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

2.12. Windows

mroongaのWindowsバイナリはMariaDBのバイナリと一緒に提供されます。これは、mroongaのWindows版をビルドするのに いくつかの変更が 必要だからです。

2.12.1. インストーラー

MSIファイルをダウンロードして実行してください。環境に合わせてMSIを選んでください。

32-bit環境なら win32 バージョンを選んでください。64-bit環境なら winx64 を選んでください。

2.12.2. Zip

zipファイルをダウンロードして展開してください。環境に合わせてzipファイルを選ぶ必要があります

32-bit環境なら win32 バージョンを選んでください。64-bit環境なら winx64 を選んでください。

2.12.3. Mroongaのインストール

ZIPパッケージはあらかじめ設定済みなので、"INSTALL PLUGIN"やUDFのインストールは不要です。

mysqldを起動します。:

> mysqld.exe --defautls-file=.\MY-PREFERRED-INI.ini --console

それぞれのzipパッケージにはiniファイルが含まれています。(my-small.iniやmy-medium.ini、my-large.iniなど) 適切なiniファイルを選択してください。

MariaDBに次のコマンドで接続します。:

> mysql.exe
MariaDB [(none)]> SHOW ENGINES;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV                | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                      | NO           | NO   | NO         |
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| mroonga            | YES     | CJK-ready fulltext search, column store                    | NO           | NO   | NO         |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                     | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

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

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

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

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

2.13.2. ダウンロード

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

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

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

2.13.3. 前提条件

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

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

2.13.4. MySQLのインストール

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

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

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

/usr/local/src/mysql-5.6.17

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

/usr/local/mysql

2.13.5. Groongaのインストール

Groongaの最新版をビルド&インストールしてください。

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

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

2.13.6. Mroongaのビルド

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

./configure \
  --with-mysql-source=/usr/local/src/mysql-5.6.17 \
  --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.6.17 \
  --with-mysql-config=/usr/local/mysql/bin/mysql_config

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

make

2.13.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';

スニペット(キーワード周辺のテキスト)を取得するために、mroonga_snippet関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';

MroongaからGroongaのクエリを実行するために、mroonga_command関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';

ユーザーからの入力クエリーを適切にエスケープするために、mroonga_escape関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

2.14. MariaDBにバンドルしたソースコードからのインストール

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

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

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

2.14.2. ダウンロード

packages.groonga.org から、Mroongaのtarballをダウンロードしてください。

downloads.mariadb.org から、MariaDBのtarballをダウンロードしてください。

2.14.3. 前提条件

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

2.14.4. Groongaのインストール

Groongaの最新版をビルド&インストールしてください。

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

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

2.14.5. MariaDBとMroongaのビルド

MariaDBのtarballの解凍。

tar xvfz mariadb-10.0.2.tar.gz

Mroongaのtarballの解凍後、storageディレクトリへ移動。

tar xvfz mroonga-3.03.tar.gz
mv mroonga-3.03 mariadb-10.0.2/storage/mroonga/

"cmake"を実行します。

cd mariadb-10.0.2
cmake .

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

make

2.14.6. MariaDBとMroongaのインストール

"make install"を実行すると"usr/local/mysql"ディレクトリにMariaDBとMroongaが配置されます。

make install

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

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

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

mysql> SHOW ENGINES;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV                | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| MyISAM             | DEFAULT | MyISAM storage engine                                      | NO           | NO   | NO         |
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| InnoDB             | NO      | Supports transactions, row-level locking, and foreign keys | NULL         | NULL | NULL       |
| mroonga            | YES     | CJK-ready fulltext search, column store                    | NO           | NO   | NO         |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                     | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.01 sec)

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

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

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

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

スニペット(キーワード周辺のテキスト)を取得するために、mroonga_snippet関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';

MroongaからGroongaのクエリを実行するために、mroonga_command関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';

ユーザーからの入力クエリーを適切にエスケープするために、mroonga_escape関数をインストールします。

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

mysql> CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

2.15. アップグレードガイド

非互換な変更が新しいリリースでもたらされることがあります。もし、そういった非互換がはいる場合にはリリースアナウンスでアナウンスします。

古いバージョンからMroongaをアップグレードする推奨方法のリストがこちらです。

以前のバージョンをお使いなら、アップグレード手順について次のURLを参照してください。

1.20以前からアップグレードするなら、 1.20リリース - 2012/01/29 1.20 リリース を参照してください。

1.20からアップグレードするなら、 2.00 リリース を参照してください。

2.00もしくは2.01からアップグレードするなら、 2.02 リリース を参照してください。

もし2.00以降でマルチカラムインデックスをストレージモードで使用しているなら、 2.03 リリース を参照してください。

もし2.04以降で256マルチカラムインデックスをストレージモードで使用しているなら、 2.03 リリース を参照してください。2.04以降でストレージモードにてSETカラムもしくは要素数が256より少ないENUMを使用している場合は、 2.05 リリース を参照してください。

2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている場合は、 2.08 リリース を参照してください。

2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、データベースを再作成してください。CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してください。 それぞれについては 2.09 リリース を参照してください。