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

mysql:15956

From: HAYASHI Kentaro <HAYASHI Kentaro <hayashi@xxxxxxxxxx>>
Date: Fri, 29 Mar 2013 11:16:15 +0900
Subject: [mysql 15956] [ANN] mroonga 3.02


林です。

今日は毎月恒例の肉の日ですね。

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

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

まだmroongaをよく知らない人にもWeb記事を通じて知ってもらいたいというのが動機です。
似たような動機で、毎週木曜にQiitaでgroonga関連の情報提供もはじめました!

  http://qiita.com/users/groonga

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

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

すでに何人かの方から応募いただいていますが、まだまだ募集しています。


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

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

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

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


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

  * MariaDB 10.0のサポート
  * mroonga_commandのサポート

○ MariaDB 10.0のサポート

以前からMariaDBへの対応をすすめていましたが、今回のリリースでは
MariaDB 10.0のサポートを追加しました。

ただし、MariaDB+mroongaのパッケージは提供しないので、
MariaDBと一緒に使うにはソースコードからビルドする必要があります。

具体的なビルド手順については以下で案内しています。

  http://mroonga.github.com/ja/docs/install.html#install-from-the-source-code-with-mariadb

○ mroonga_commandのサポート(実験的)

今回のリリースでは実験的ではありますが、mroonga_commandというUDFのサポートを
追加しました。

これは、mroongaからgroongaに直接クエリを投げることができるようにするものです。

たとえば、groongaが提供している位置情報検索のための関数を直接呼べるようになります。

以下はサンプルで使うスキーマ定義です。

  CREATE TABLE shops (
  id int primary key auto_increment,
  name text,
  location GEOMETRY NOT NULL,
  SPATIAL INDEX(location)
  ) engine = mroonga, default charset utf8;

これに以下のようにして店舗のデータを投入します。

  INSERT INTO shops (name, location) VALUES ("Shop A", GeomFromText('POINT(139.796829 35.712013)'));
  INSERT INTO shops (name, location) VALUES ("Shop B", GeomFromText('POINT(139.711517 35.647701)'));

データを投入できたことを以下のようにして確認します。
確認自体にmroonga_commandを使うことができます。

  SELECT mroonga_command("select shops");

結果は以下のようになります。(結果は適宜整形しています)
データを2件登録できていることがわかります。

  [
    [
      [2],
      [
        ["_id","UInt32"],
        ["_key","Int32"],
        ["id","Int32"],
        ["location","WGS84GeoPoint"],
        ["name","LongText"]
      ],
      [1,1,1,"128563247x503268584","Shop A"],
      [2,2,2,"128331724x502961461","Shop B"]
    ]
  ]

では、groongaが提供している位置情報検索のための関数を使ってみましょう。
groongaでは指定した円の範囲内に含まれている座標を持つレコードの検索のために
geo_in_circleが用意されています。

  http://groonga.org/ja/docs/reference/functions/geo_in_circle.html

今回はこれを使って特定の駅から500メートル以内の店舗を探してみます。

  SELECT mroonga_command("select shops --filter 'geo_in_circle(location, \"35.7119,139.7983\", 500)'");

上記のクエリは引数に渡している座標位置からから半径500メートル以内にある
店舗のみを抽出(--filter)することができます。結果を見てみましょう。

  [
    [
      [1],
      [
        ["_id","UInt32"],["_key","Int32"],["id","Int32"],["location","WGS84GeoPoint"],["name","LongText"]
      ],
      [1,1,1,"128563247x503268584","Shop A"]
    ]
  ]

上記の結果から500メートル以内にある店舗は1件あって、
なおかつ店名はShop Aであることがわかりました。
mroonga_commandはこんなふうに使うことができます。

ただし、mroonga_commandが返す結果は通常のSQLの枠組みとは異なり、groonga特有のものになっている点に
注意が必要です。

○ 変更点

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

改良
^^^^

    * LinuxでMariaDB 10.0へバンドルできるようにしました。 [#1644]
    * [doc] mroonga_log_level に指定できる値のドキュメントをリファレンスマニュアルにも追加しました。
      [groonga-dev,01255] [磯部和広さんが報告]
    * [実験的] mroonga_command というUDFを追加しました。 [#1643]
      このUDFを使うと groonga に直接クエリを送れるようになります。

修正
^^^^

    * 複合インデックスを使用している場合にWHERE節の<表現が動作しない不具合を修正しました。 
      [groonga-dev,01253] [#1670] [堀越さんが報告]
    * [ラッパーモード] key オブジェクトが開放されるタイミングが早すぎてエラーになるのを修正しました。
      この不具合は DISABLE KEYS/ENABLE KEYSによってインデックスの再作成を行ったときに発生
      することがあります。[#1671] [keigo itoさんが報告]

感謝
^^^^

    * 磯部和広さん
    * Horikoshi Yukiさん
    * keigo itoさん

-- 
HAYASHI Kentaro <hayashi@xxxxxxxxxx>

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