BloGroonga

2012-08-29

groonga 2.0.6リリース

今日は肉の日ですね。

groonga 2.0.6 がリリースされました!

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

今回のリリースの主なトピックは3つあります。

  • 特定の語句を含まないレコードの検索をサポート
  • groongaサーバーについてのドキュメントの追加
  • groonga-httpdhttp_rewrite_module のサポート

特定の語句を含まないレコードの検索をサポート

全文検索を行うときにBOOLEAN MODEでマイナス記号をつけて特定の語句が検索結果に含まれないようにする機能をサポートしました。

例えば、「明日」を含まないレコードの検索を以下のようなクエリで実現できるようになりました。(下記の例では、diariesテーブルのcontentカラムから「明日」が含まれないレコードを検索しています。)

  select diaries --match_columns content --query "-明日" --query_flags ALLOW_LEADING_NOT

注意として、この検索を行うには --query_flagsALLOW_LEADING_NOT の指定が必要です。また、 ALLOW_LEADING_NOT は重い処理なので濫用するとパフォーマンスに影響します。

--query_flags には、他にも痒いところに手が届くような便利なオプションを追加しています。

例えば、カラムを検索する際に、 --query "title:(検索したいキーワード)" を指定するとtitleカラムを指定したキーワードで検索するという振舞をします。

これは通常の検索の場合には望ましい振舞いですが、キーワード自体に:を含むなど、そのままではうまく検索できないようなケースがありました。

指定したキーワードを特に解釈せずそのまま検索できるようにするには --query_flags オプションに 'NONE' を指定することでお望みの検索を行えます。

--query_flags オプション には今回紹介した 'ALLOW_LEADING_NOT''NONE' の他にもいくつか種類があります。

groongaサーバーについてのドキュメントの追加

今回のリリースではドキュメントの更新を行いました。

groongaをサーバー用途で使うときにはどんな選択肢があるでしょうか。

まずは提供しているプロトコルを選択する必要があります。groongaで提供しているプロトコルはGQTPとHTTPの2つがあります。

HTTPプロトコルを選択した場合には、groongaもしくはgroonga-httpdという実装の違いによる選択肢があります。

それではそれらプロトコルやサーバー実装についてどのように選んだら良いのでしょうか。

そういったサーバー用途で使うときに気になるポイントについて、 比較表 を用意しました。検討するときの参考にしてください。

groonga-httpdhttp_rewrite_module のサポート

groonga-httpd の機能強化のポイントとしてPCREの自動検出があります。

これまで、 groonga-httpd では、PCREをリンクしていなかったため明示的に http_rewrite_module を無効にしていました。

今回のリリースではPCREの自動検出をサポートし、なおかつ http_rewrite_module が使えるようにPCREを必須としました。

以前紹介した、 groonga-httpd の複数データベースのサポートやベースパスのカスタマイズと組合せることでより柔軟にgroongaサーバーの運用を行えるようになります。

さいごに

2.0.5からの詳細な変更点は 2.0.6リリース 2012/08/29 を確認してください。

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