groonga 2.0.6リリース
今日は肉の日ですね。
groonga 2.0.6 がリリースされました!
それぞれの環境毎のインストール方法: インストール
今回のリリースの主なトピックは3つあります。
- 特定の語句を含まないレコードの検索をサポート
- groongaサーバーについてのドキュメントの追加
groonga-httpd
でhttp_rewrite_module
のサポート
特定の語句を含まないレコードの検索をサポート
全文検索を行うときにBOOLEAN MODEでマイナス記号をつけて特定の語句が検索結果に含まれないようにする機能をサポートしました。
例えば、「明日」を含まないレコードの検索を以下のようなクエリで実現できるようになりました。(下記の例では、diariesテーブルのcontentカラムから「明日」が含まれないレコードを検索しています。)
select diaries --match_columns content --query "-明日" --query_flags ALLOW_LEADING_NOT
注意として、この検索を行うには --query_flags
に ALLOW_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-httpd
で http_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でガンガン検索してください!