2011年9月29日

[mysql 15635] [ANN]groongaストレージエンジン 1.0.0

須藤です。

今日は肉の日なので、MySQL 5.1/5.5/5.6で利用可能な全文検索可能
なストレージエンジン、groongaストレージエンジンのversion 1.0.0
をリリースしました。

ドキュメント:
http://mroonga.github.com/

インストールガイド:
http://mroonga.github.com/install.html

groongaストレージエンジンとは、全文検索エンジンであるgroonga
をベースとしたMySQLのストレージエンジンです。Tritonnの後継プ
ロジェクトとなります。

最初のテストリリース(2010/08/19)から約1年かけて初のメジャー
リリースとなりました!バグ報告など開発にご協力いただいたみな
さん、ありがとうございます!

このリリースでは以前のバージョンと非互換な部分があります(後
述)ので、アップグレードする場合は注意してください。


今後のバージョン番号のつけ方ですが、基本的にはリリースのたび
にマイクロバージョン(3桁目)が1つずつあがります。このときは
そのままアップグレードしても問題ないようにします。何かしら非
互換が発生する場合はマイクロバージョン(2桁目)をあげます。
この場合は注意してアップグレードしてください。


○ 最近のトピックス

○○ 11/29にgroonga勉強会開催

2ヶ月後の11/29に「全文検索エンジンgroongaを囲む夕べ #2」
と題して第2回目のgroonga勉強会を開催します!
http://atnd.org/events/20446

groongaストレージエンジンに関する話題もあるので興味のある方
はぜひ都合をつけて参加してください!

会場は株式会社ECナビさん(2011年10月から株式会社VOYAGE GROUP
に社名変更予定)にご提供いただけることになりました。ありがと
うございます!

○○ マルチカラムインデックス対応

これまで何度か要望があがっていたマルチカラムインデックスです
が、ストレージモードでもマルチカラムインデックスに対応しまし
た!これにより、複数のカラムの条件で絞り込む場合に以前よりも
高速に絞り込むことができるようになりました。

○○ 位置情報検索対応

MyISAMではSPTIAL INDEXを使った位置情報検索を行うことができま
す。
http://dev.mysql.com/doc/refman/4.1/ja/spatial-extensions.html

groongaストレージエンジンでもMyISAMと同様の使い方で、groonga
のもつ高速な位置情報検索を利用できるようになりました。
http://mroonga.github.com/userguide/storage.html#id7

なお、これはストレージモードのみの機能になるので注意してくだ
さい。もし、ラッパーモードでも同様の機能が欲しい(InnoDBでも
高速な位置情報検索を行いたい)という要望があれば、ラッパーモー
ドにも同様の機能を追加することを検討したいと思っています。ご
意見がありましたらぜひお聞かせください。

○○ 全文検索用パーサーの指定に対応

これまでは、全文検索用のインデックス作成時のトークン作成方法
はバイグラム方式しか選べませんでした。しかし、今回のリリース
からMeCabを用いたわかち書き方式のトークン作成方法も指定でき
るようになりました。(ストレージモードもラッパーモードも対応)

http://mroonga.github.com/userguide/storage.html#id5
http://mroonga.github.com/userguide/wrapper.html#id6

ただし、MySQLが提供する

FULLTEXT INDEX (...) WITH PARSER パーサ名

という構文ではなく

FULLTEXT INDEX (...) COMMENT 'parser "TokenMecab"'

というようにFULLTEXT INDEXのコメント内で指定する書式を使用す
ることに注意してください。FULLTEXT INDEXのコメントはMySQL
5.5からの機能になるのでMySQL 5.1では利用できません。

MySQL 5.1で利用する場合はgroonga_default_parserなどを利用し
てください。(上述のドキュメント内に利用する方法が書かれてい
ます。)

○○ [非互換] _scoreカラムの削除

これまではストレージモードでは検索スコアを取得するために特殊
な_scoreカラムを利用していましたが、今回からMySQL標準のMATCH
AGAINSTで検索スコアを取得する方法に対応しました。これにより、
1回のSELECTで複数の全文検索(MATCH AGAINST)を利用できるよう
になりました。

なお、これまで通り_scoreを定義したスキーマはエラー扱いになる
ので、アップグレード時にはご注意ください。

○○ CentOS 6のサポート

今回からCentOS 6のパッケージも提供します。CentOS 5では標準パッ
ケージのMySQLのバージョンが5.0であることからOracleが提供する
RPMパッケージと一緒に配布していました。しかし、CentOS 6では
標準パッケージのMySQLが5.1になったことからCentOS 6のパッケー
ジではOracleのMySQLパッケージではなく、CentOS 6のMySQLパッケー
ジと一緒に利用するようにビルドされています。


○ 変更点

0.9からの変更点は以下の通りです。
http://mroonga.github.com/news.html#release-1-0-0

1.0.0 リリース - 2011/09/29
---------------------------

初回リリースから約1年経って、初のメジャーリリース!

改良
====

* [ラッパーモード] drop index対応。 #1040
* [ストレージモード] GEOMETRY対応。(ただし、カラムに保存できる型はPointのみ対応。インデックスを利用した位置検索はMBRContainsのみ対応。) #1041
* [ストレージモード] マルチカラムインデックスに対応。 #455
* [ストレージモード][ラッパーモード] 全文検索用パーサー(トークナイザー)のカスタマイズに対応。 #592
* configureにデフォルトの全文検索用パーサーを指定する --with-default-parser オプションを追加。
* 実行時にデフォルトの全文検索用パーサーを指定する groonga_default_parser 変数を追加。
* [ラッパーモード] ストレージモードで実装している order と limit が指定された場合に必要のないレコードを返さないようにする高速化に対応。
* [ストレージモード] 1つの select 中での複数の match against 指定に対応。
* [非互換][ストレージモード] _score カラムの削除。代わりにMySQL標準の書き方である match against を使ってください。
* [ラッパーモード] プライマリキーの更新に対応。
* MySQL 5.5.16に対応。
* CentOS 6に対応。
* groonga 1.2.6に対応。(1.2.5以下のサポートを削除。)

修正
====

* [Ubuntu] Lucid上でインストールエラーが発生する問題を修正。 (Isao Sugimotoさんが報告)
* auto_incrementを使った場合にテキストデータが壊れる問題を修正。 (@zaubermaerchenさんが報告) #1072
* [Ubuntu] Lucid上でテーブルを削除するとクラッシュする問題を修正。 #1063 (Isao Sugimotoさんが報告)
* MySQLと同じビルドオプションを使っていなかった問題を修正。 GitHub#4 (groongaのGitHubのIssues) (Tomohiro MITSUMUNEさんが報告)

感謝
====

* Isao Sugimotoさん
* @zaubermaerchenさん
* Tomohiro MITSUMUNEさん

--
須藤 功平 <kou@xxxxx>
株式会社クリアコード < http://www.clear-code.com/>; (03-6231-7270)

プログラミングが好きなソフトウェア開発者を募集中:
http://www.clear-code.com/recruitment/


投稿者 xml-rpc : 2011年9月29日 09:02
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106527
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。