HAYASHI Kentaro
hayas****@clear*****
2012年 8月 29日 (水) 11:46:28 JST
林です。 今日は肉の日ですね。 groonga 2.0.6がリリースされました! groonga2.0.6はgroonga 2.xのメンテナンスリリースです。 http://groonga.org/ja/docs/news.html#release-2-0-6 今回のリリースの主なトピックは4つあります。 * 特定の語句を含まないレコードの検索をサポート * groongaサーバーについてのドキュメントの追加 * groonga-httpdでhttp_rewrite_moduleのサポート それぞれの環境毎のインストール方法はこちらを見てください。 http://groonga.org/ja/docs/install.html ○ 特定の語句を含まないレコードの検索をサポート MySQLには全文検索を行うときにBOOLEAN MODEでマイナス記号をつけて 特定の語句が検索結果に含まれないようにする機能があります。 この機能をgroongaでも同様にサポートしました。 例えば、「明日」を含まないレコードの検索を 以下のようなクエリで実現できるようになりました。 (下記の例では、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'の他にも いくつか種類があります。詳細については以下を参照してください。 http://groonga.org/ja/docs/reference/commands/select.html#query-flags ○ groongaサーバーについてのドキュメントの追加 今回のリリースではドキュメントの更新を行いました。 groongaをサーバー用途で使うときにはどんな選択肢があるでしょうか。 まずは提供しているプロトコルを選択する必要があります。 groongaで提供しているプロトコルはGQTPとHTTPの2つがあります。 HTTPプロトコルを選択した場合には、groongaもしくは groonga-httpdという実装の違いによる選択肢があります。 それではそれらプロトコルやサーバー実装について どのように選んだら良いのでしょうか。 そういったサーバー用途で使うときに気になるポイントについて、 比較表を用意しました。 検討するときの参考にしてください。 http://groonga.org/ja/docs/server/http/comparison.html ○ 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からの変更点は以下の通りです。 http://groonga.org/ja/docs/news.html#release-2-0-6 2.0.6リリース - 2012/08/29 -------------------------- 改良 * [deb][rpm] groonga-server-common メタパッケージを追加。 [#1451] * --query_flags オプションを select コマンドでサポート。 * groonga-httpdでPCREの自動検出をサポート。 * [doc] TwiterとFacebookの情報を追加。 * MeCabで mecab_new2() 関数失敗時のエラーメッセージも表示するように改善した。 * [doc] groonga をサーバーとして利用するときの詳細ドキュメントを追加。 * vm.overcommit_memory の詳細を記録するように改善した。 * カスタムセレクタの定義をサポート。 * groongaで --working-directory オプションをサポートした。 * groonga-httpdで dump コマンドをサポートした。 * clearlock コマンドで見つからないターゲット名を表示するように改善した。 * テーブルプラグインで実装されている get コマンドについてのエラーメッセージを改善した。 * [rpm][centos] MeCab 0.994をサポートした。 [#1455] [岩井さんが提案] * ログ記録レベルの既定の最大値をgrn_init()を呼ぶ前に変更可能にした。 * すべてのレコードIDを結果テーブルへとコピーするための関数all_records()を追加した。 * select コマンドの --query で '-WORD' 構文をサポート。 修正 * [doc] チュートリアルの実行例を修正した。 [#1428] [岩井さんが報告] * groonga-httpdの初期化スクリプトでユーザ/グループとしてgroongaを強制的に指定しないように修正した。 * [rpm][fedora] groonga-httpdサービスでstopパラメータの指定漏れを修正した。 * select コマンドでキャッシュされたキーの最後の1バイトが無視される不具合を修正した。 * 複雑な関数呼び出しで引数の個数の検出処理を修正した。 * Clangによる警告を抑制するように修正した。 * clearlock コマンドを実行する際に add コマンドが存在しないことによる前方非互換なエラーを修正した。 * [windows] バイナリデータを含むデータベースを開く際のエラーを修正した。 [@yitoさんが報告] 感謝 * 岩井さん * @yitoさん -- HAYASHI Kentaro <hayas****@clear*****>