[前][次][番号順一覧][スレッド一覧]

mysql:15924

From: HAYASHI Kentaro <HAYASHI Kentaro <hayashi@xxxxxxxxxx>>
Date: Sat, 9 Feb 2013 12:53:27 +0900
Subject: [mysql 15924] [ANN] mroonga 3.00

林です。

今日は年内最初の肉の日記念(2/9)ですね。

まずはじめに、お知らせがあります。

これまでも、mroonga.github.comにて事例 http://mroonga.github.com/ja/users/ を
紹介してきましたが、それとは別に http://gihyo.jp/ にgroonga関連(mroonga含む)
の記事を書くという取り組みもはじめようかと検討しています。

まだmroongaをよく知らない人にもWeb記事を通じて知ってもらいたいというのが動機です。
似たような動機で、毎週木曜にQiitaでgroonga関連(今週はmroongaのインストール時の
トラブル対処についての記事を書きました!)の情報提供もはじめました!

  http://qiita.com/users/groonga

詳細は「groonga普及のための協力のお願い」を参照していただきたいと思いますが、
実際に使っているユーザーのみなさんに利用事例を書いてもらえたらいいなぁと思っています!

  http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-February/001186.html


mroonga 3.00をリリースしました。
  http://mroonga.github.com/ja/docs/news.html#release-3-00

mroongaはMySQL 5.1/5.5/5.6、MariaDB 5.3/5.5で利用できる全文検
索・位置情報検索可能なストレージエンジンです。mroongaは
Tritonnの後継プロジェクトです。

ドキュメント:
  http://mroonga.github.com/ja/
インストールガイド:
  http://mroonga.github.com/ja/docs/install.html

去年の2月に2.00をリリースして以来、毎月新機能や変更、
ユーザさんからのフィードバックによる不具合対応を積み重ねてきました。

例えば、リリースアナウンスからトピックを拾うだけでも
これだけあります。(リリースアナウンスで紹介しているのは
ほんの一部なので実際には数多くの改善、修正が入っています。)

* ロゴの一新 (2.01)
* 類似文書検索のサポート(2.02)
* バルクインサート時のインデックスの有効/無効化のサポート (2.03)
* mroonga_match_escalation_thresholdサーバ変数の追加 (2.03)
* Mac OS XでHomebrewサポートを追加 (2.03)
* SETカラムに対するインデックスをサポート (2.05)
* Fedora 17をサポート (2.05)
* 各種UNSIGNED型のサポートを追加 (2.05)
* ENUMを使うのに必要な領域の削減 (2.05)
* 特定の語句を含まないレコードの検索をサポート (2.06)
* スニペット関数のサポート (2.07)
* MeCab向けにAppArmorの設定を追加 (2.07)
* utf8mb4キャラクタセットのサポート (2.08)
* Ubuntu 12.10 (Quantal Quetzal)のサポート (2.08)
* ラッパーモードでのlast_insert_id()関数のサポート (2.09)
* 依存するMySQLバージョンを明示的に指定 (2.09)
* MySQL 5.6.9-rcへ対応 (2.10)

今回のリリースでgroongaのメジャーバージョンアップに合わせて
バージョンも3.00となりました!

各種ディストリビューションのMySQLのアップデートに追従しつつ
groongaのバージョンアップとともにmroongaは進化しています!

mroongaでよくあるMySQLとのバージョン不一致で
うまくインストールできなかったんだけど、、、というトラブルも
リリース直後は遭遇しにくいので、この機会にmroongaを試してみるのは
いかがでしょうか。

みなさんからのフィードバックをお待ちしています!

1.20より前のバージョンからアップグレードする場合は以下にある
手順を使ってください。
  http://mroonga.github.com/ja/docs/news.html#release-1-20

1.20からアップグレードする場合は以下にある手順を使ってくださ
い。
  http://mroonga.github.com/ja/docs/news.html#release-2-00

2.00か2.01からアップグレードする場合は、以下の手順でパッケージ
署名用の新しい鍵をインポートしてください。

  http://mroonga.github.com/ja/docs/news.html#release-2-02

2.00以降でストレージモードにてマルチカラムインデックスを
使っている場合は以下の手順でインデックスを作り直して
ください。

  http://mroonga.github.com/ja/docs/news.html#release-2-03

2.04以降でストレージモードにてSETカラムもしくは要素数が256より
少ないENUMを使用している場合は、以下の手順でデータベースを
再作成してください。

  http://mroonga.github.com/ja/docs/news.html#release-2-05

2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている
場合は、以下の手順でインデックスを再作成してください。

  http://mroonga.github.com/ja/docs/news.html#release-2-08

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

  http://mroonga.github.com/ja/docs/news.html#release-2-09

今回のリリースの主なトピックは以下の通りです。

  * Fedora 18に対応
  * MySQL 5.6.10 に対応
  * MySQLと同等のCOLLATION(照合順序)のサポート

○ Fedora 18に対応

今回のリリースでは2013/01/15にリリースされたFedora 18のサポートを追加しました。
Fedora 18のサポートに伴ない、Fedora 17のパッケージの提供は終了しています。

インストール手順は以下を参照してください。
  http://mroonga.github.com/ja/docs/install.html#fedora-18

○ MySQL 5.6.10に対応

今回のリリースではMySQL 5.6.10への対応を行いました。

これまでのリリースでも、5.6.xサポートのための対応は行っていましたが、
それに合わせたパッケージ等の提供は行っていませんでした。

今回はMySQL 5.6がついにGA(正式版)として公開されたこともあり、
  http://www.oracle.com/us/corporate/press/1904335

これに合わせたパッケージの提供をCentOS 5向けにはじめました。
5.5 -> 5.6へのアップグレード時にはデータベースのダンプ/リストアをおすすめします。

mroonga公式ではありませんが、WING☆さんがMySQL 5.6系のmroongaパッ
ケージを独自に提供してくださっているので、CentOS 6をお使いの方は
そちらを利用されるのも良いでしょう。

  http://sourceforge.jp/projects/wing-repo/

○ MySQLと同等のCOLLATION(照合順序)のサポート

今回のリリースでは、文字列を比較したり並べ替えるときに使われる
COLLATION(照合順序)のうち、utf8_general_ciとutf8mb4_general_ciをサポートしました。

照合順序としてutf8_general_ciもしくはutf8mb4_general_ciを使いたい場合には、
groonga-normalizer-mysqlパッケージをあらかじめインストールしておく必要があります。
(groonga-normalizer-mysqlはgroonga 3.0.0以降が必要です。)

以下に各環境ごとのインストール手順が記載してあります。

Debian/Ubuntu:

Debian/Ubuntuではあらかじめgroongaのapt-lineを有効にしておく必要があります。
  http://groonga.org/ja/docs/install/debian.html
  http://groonga.org/ja/docs/install/ubuntu.html

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

CentOS/Fedora:

CentOS/Fedoraではgroonga-releaseパッケージをインストールしておく必要があります。
  http://groonga.org/ja/docs/install/centos.html
  http://groonga.org/ja/docs/install/fedora.html

  % sudo yum install -y groonga-normalizer-mysql

COLLATIONを使うと大文字小文字の区別なく比較(例えば、Aとaを同一視する)することが
できます。例の場合はgroongaのnormalizerが提供している機能と同じです。

ただし、mroongaではgroongaのnormalizerを使って同一視する文字を判定し、
その結果のソートはMySQLにやってもらうという役割を分担した仕組みになっています。

そのため、groongaのnormalizerとMyISAMやInnoDBとで同一視する文字が異なっていると、
仕組み上他のストレージエンジンを使った場合と結果が異なるという問題がありました。

今回の改良でMyISAMでもInnoDBでもmroongaでも同じ文字を同一視するようになりました。
たとえば、(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_general_ciではないCOLLATIONを指定する方法があります。
  この方法ではgroongaのnormalizerに統一(従来通りの挙動)できます。

  > ALTER TABLE (テーブル名) ADD (カラム定義) COLLATE 'utf8_roman_ci';

カラムに指定したCOLLATIONについては以下のようにして確認することができます。

  > SHOW FULL COLUMNS FROM (テーブル名);  

注意:
・utf8_general_ci以外のCOLLATIONはgroonga独自のnormalizerを使うようになっています。
・utf8_unicode_ciは今後対応する予定なのでそれ以外を使ったほうがいいです。
・utf8_binはCOLLATIONを使わないという意味なので、正規化したい場合はこれも使ってはいけません。

mroongaをパッケージではなく、ソースからインストールする場合にもMySQL互換のnormalizerを使い
たい場合には、あらかじめgroonga-normalizer-mysqlをインストールしておいてください。

○ 変更点

2.10からの変更点は以下の通りです。
  http://mroonga.github.com/ja/docs/news.html#release-3-00

改良
^^^^

    * Fedora 18に対応。
    * Fedora 17対応をやめた。
    * utf8_general_ci と utf8mb4_generic_ci 互換なノーマライザーをサポートした。
    * [rpm][centos] CentOS 5にてMySQL 5.6.10に対応した。

修正
^^^^

    * [ストレージモード] ユニークキーとなるカラムに対し大文字小文字混在のキーワードでは
      マッチしないgroonga由来の不具合を修正した。 [groonga-dev,01187] [田辺公平さんが報告]

感謝
^^^^

    * 田辺公平さん


-- 
HAYASHI Kentaro <hayashi@xxxxxxxxxx>

[前][次][番号順一覧][スレッド一覧]