今日は年に1度の肉の日記念日ですね。
昨年の2月に2.00をリリースして以来、毎月新機能や変更、ユーザさんからのフィードバックによる不具合対応を積み重ねてきました。 そこで、今回のリリースではgroongaのメジャーバージョンアップに合わせてバージョンも3.00にしました!
mroonga 3.00リリース
mroonga 3.00 をリリースしました!
インストール/アップグレード方法
それぞれの環境毎のインストール方法: インストール
以前のバージョンからアップグレードする場合には、アップグレード手順に注意が必要です。現在お使いのバージョンごとのアップグレード手順を参照してください。
1.20より前のバージョンからアップグレードする場合は 1.20リリース 2012/01/29 にある手順を使ってください。
1.20からアップグレードする場合は 2.00リリース 2012/02/29 にある手順を使ってください。
2.00か2.01からアップグレードする場合は、 2.02リリース 2012/04/29 にある手順でパッケージ署名用の新しい鍵をインポートしてください。
2.00以降でストレージモードにてマルチカラムインデックスを使っている場合は 2.02リリース 2012/04/29 にある手順でインデックスを作り直してください。
2.04以降でストレージモードにてSETカラムもしくは要素数が256より少ないENUMを使用している場合は、 2.05リリース 2012/07/29 にある手順でデータベースを再作成してください。
2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている場合は、 2.08リリース 2012/10/29 にある手順でインデックスを再作成してください。
2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、データベースを再作成してください。CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してください。手順は 2.09リリース 2012/11/29 にあります。
今回のリリースの主なトピックは以下の通りです。
- Fedora 18に対応
- MySQL 5.6.10に対応
- MySQLと同等のCOLLATION(照合順序)のサポート
Fedora 18対応
今回のリリースでは2013/01/15にリリースされたFedora 18のサポートを追加しました。 Fedora 18のサポートに伴ない、Fedora 17のパッケージの提供は終了しています。
インストール手順は Fedora 18 を参照してください。
MySQL 5.6.10に対応
今回のリリースではMySQL 5.6.10への対応を行いました。
これまでのリリースでも、5.6.xサポートのための対応は行っていましたが、それに合わせたパッケージ等の提供は行っていませんでした。
今回はMySQL 5.6がついに GA (正式版) として公開されたこともあり、これに合わせたパッケージの提供をCentOS 5向けにはじめました。(5.5 -> 5.6へのアップグレード時はデータベースのダンプ/リストアをおすすめします。)
mroonga公式ではありませんが、WING☆さんがMySQL 5.6系のmroongaパッケージのリポジトリを wing-repo として独自に提供してくださっているので、こちらを利用されるのも良いでしょう。
MySQLと同等のCOLLATION(照合順序)のサポート
今回のリリースでは、文字列を比較したり並べ替えるときに使われるCOLLATION(照合順序)のうち、
utf8_general_ci
と utf8mb4_general_ci
をサポートしました。
照合順序として utf8_general_ci
もしくは utf8mb4_general_ci
を使いたい場合には、 groonga-normalizer-mysql
パッケージをあらかじめインストールしておく必要があります。(mroongaインストール時に一緒にインストールします)
COLLATIONを使うと大文字小文字の区別なく比較(例えば、Aとaを同一視する)することができます。例の場合はgroongaのnormalizerが提供している機能と同じです。
ただし、mroongaではgroongaのnormalizerを使って同一視する文字を判定し、その結果のソートはMySQLにやってもらうという役割を分担した仕組みになっています。
そのため、groongaのnormalizerとMyISAMやInnoDBとで同一視する文字が異なっていると、仕組み上他のストレージエンジンを使った場合と結果が異なるという問題がありました。
今回の改良でMyISAMでもInnoDBでもmroongaでも同じ文字を同一視するようになりました。
例えば、「a」(U+0061 LATIN SMALL LETTER A)は「A」(U+0041 LATIN CAPITAL LETTER A)だけではなく、「à」(U+00E0 LATIN SMALL LETTER A WITH GRAVE)や「Á」(U+00C1 LATIN CAPITAL LETTER A WITH ACUTE)とも同一視されます。
この変更は非互換な変更です。
既存のデータベースへの影響について:
- 新しく作成するテーブル・カラム・インデックスから有効になります。
- すでに存在しているカラム・インデックスはこれまで通り、groonga独自のnormalizer(NormalizerAuto)が使われます。
そのため、mroongaを3.00へとアップデートして既存のデータベースを使い続けるとカラム毎に異なるnormalizerを使うことになる点に注意が必要です。
全体で同じnormalizerを使う方法について:
- 新しく作るテーブル・カラム・インデックスのCOLLATIONとして
utf8_roman_ci
などutf8_general_ci
ではないCOLLATIONを指定する
するとgroongaのnormalizerに統一(従来通りの挙動)できます。
さいごに
2.10からの詳細な変更点は 3.00リリース 2013/02/09 を確認してください。
それでは、mroongaでガンガン検索してください!