BloGroonga

2015-09-29

Groonga 5.0.8リリース

今日は肉の日ですね!

Groonga 5.0.8 をリリースしました!

それぞれの環境毎のインストール方法: インストール

変更内容

今回のリリースの主なトピックは次の2点です。

  • 一時テーブルにカラムを追加できるようになった
  • HTTP/2対応

一時テーブルにカラムを追加できるようになった

まだ、Groongaを全文検索サーバーとして使っているユーザーには目に見えるメリットはないのですが、今後の改良で重要になる機能が追加されました。それが一時テーブルにカラムを追加できる機能です。

今後、どのようなメリットがありそうかいくつか紹介します。

selectのoutput_columnsで出力値に名前をつけることができるようになります。SQLでいうAS alias_name機能です。

今は、output_columnssnippet_html(title)snippet_html(body)を指定するとどちらも出力名がsnippet_htmlになってしまいます。これを、snippet_html_titlesnippet_html_bodyのように区別できるようになります。

selectのsortbyselectのdrilldownでカラム値そのものではなく、カラム値を加工した値でソート・ドリルダウンできるようになります。たとえば、Time型のカラムの値を加工して曜日にし、曜日でドリルダウンできます。今は、別の曜日カラムを用意し、loadするときに曜日を計算し、それを使ってドリルダウンする必要があります。(動的に計算する方が便利ですが、事前に曜日カラムを用意した方が速いので、今のやり方を使うケースもあるでしょう。)

Mroongaのラッパーモードでトランザクション対応ストレージエンジン(たとえばInnoDB)をラップしているとき、ロールバックしてもインデックスが壊れないようにできます。トランザクション内での変更を一時テーブルとカラムに保存しておき、コミットされたときはそのデータを実際のテーブルに反映、ロールバックされたときは単純に破棄することができるからです。

HTTP/2対応

GroongaはHTTPを話せる全文検索サーバー機能を提供しています。この機能の実装は2つあり、1つはGroonga独自のHTTPサーバー実装で、もう1つはnginxモジュールでの実装です。このうち、nginxモジュールでの実装でHTTP/2を使えるようになりました。

先日リリースされたnginx 1.9.5から実験的な機能としてHTTP/2がサポートされています。Groongaはnginxをバンドルしてリリースしていますが、バンドルしているnginxのバージョンを1.9.5にし、HTTP/2を有効にしてビルドするようにしています。

groonga-httpd.confを次のように変更することでHTTP/2でGroongaを使うことができます。

http {
  server {
    # listen 10041;
    listen 10041 http2;

    # ...
  }
}

HTTP/2を使うと、通信量が削減され、スループットがあがる可能性があります。

おしらせ

今週は次のイベントがあります。Groongaに興味のある方はぜひお越しください。

さいごに

5.0.7からの詳細な変更点は 5.0.8リリース 2015-09-29 を確認してください。

それでは、Groongaでガンガン検索してください!