[groonga-dev,00989] [ANN] groonga 2.0.5

Back to archive index

HAYASHI Kentaro hayas****@clear*****
2012年 7月 30日 (月) 09:50:54 JST


林です。

groonga 2.0.5がリリースされました!
groonga2.0.5はgroonga 2.xのメンテナンスリリースです。
  http://groonga.org/ja/docs/news.html#release-2-0-5

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

* 近傍検索を行う 'column *N "word1 word2 ..."' 構文をサポート
* groongaドキュメントの更新
* groonga-httpdの機能強化
* 位置情報から距離を計算する組み込み関数の改善

それぞれの環境毎のインストール方法はこちらを見てください。
  http://groonga.org/ja/docs/install.html

○ 近傍検索を行う 'column *N "word1 word2 ..."' 構文をサポート

groongaでは近傍検索を行うための構文が用意されていましたが、
実際には近傍検索を行うことができませんでした。

近傍検索とはすべての単語が含まれていてかつそれぞれの単語が
文章内で近くにあるレコードを検索することです。

近くにあるかどうかは単語の距離が10以内にあるかどうかです。
今のところ、この値は固定となっていて変更できません。
距離の単位は距離の単位はN-gram系のトークナイザーでは文字数で、
形態素解析系のトークナイザーでは単語数となっています。

近傍検索を行うには 'column *N "word1 word2 ..."' 構文を使います。
実際の使用例については以下を参照してください。

  http://groonga.org/ja/docs/reference/grn_expr/script_syntax.html#near-search-operator

○ groongaドキュメントの更新

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

groongaにはスクリプト構文と呼んでいるECMAScriptに類似した構文で
条件式などを表現するための構文があります。

ECMAScriptにあるような基本的な演算子やリテラルの説明や、
groonga独自に追加した検索用の演算子の説明を追加しました。

  http://groonga.org/ja/docs/reference/grn_expr/script_syntax.html

スキーマ定義とサンプルデータによる実行例も併記してありますので、
すぐに機能を確認することができます。

○ groonga-httpdの機能強化

groonga-httpdの機能強化のポイントは2つあります。

* groonga-httpdのベースパスのカスタマイズをサポート
* locationディレクティブによる複数データベースのサポート

まず最初に紹介する機能強化ポイントはベースパスのカスタマイズに
ついてです。

これまでgroonga-httpdではgroongaのHTTPサーバー機能と同様に
/d/command?parameter1=value&...というリクエスト形式しかサポート
していませんでした。

今回のリリースではURIのベースパスをカスタマイズするための
groonga_base_pathディレクティブを追加しました。

これにより/d/以外のプレフィクスのリクエストも受け付けることが
できるようになります。

groonga_base_pathを活用することで、特定のコマンドを実行する際に
認証をかける設定を行うことができるようになります。

具体例としてshutdownコマンドに認証をかける設定方法を以下で紹介していま
す。

  http://groonga.org/ja/docs/reference/executables/groonga-httpd.html#groonga-base-path

もう一つの機能強化ポイントは複数データベースのサポートです。

従来提供していたgroongaのHTTPサーバー機能ではプロセスが扱えるデータベースが
1つに限定されていました。

今回のリリースではlocationディレクティブごとに対応するデータベースを
groonga_databaseディレクティブによって指定することができるようになりました。

前述のベースパスのカスタマイズと組み合わせることで、groonga-httpdでは
複数のデータベースをあたかも1つのデータソースであるかのようにまとめて
扱うことができるようになります。

ディレクティブの詳細と設定例については以下を参照してください。

  http://groonga.org/ja/docs/reference/executables/groonga-httpd.html#configuration-directives

○ 位置情報から距離を計算する組み込み関数の改善

groongaでは位置情報から距離を計算する組み込み関数としてgeo_distanceを
提供しています。

geo_distanceには子午線や日付変更線、赤道などのいわゆる境界をまたいだ
距離の計算が正しく行えない制限があります。

geo_distanceでは距離を計算する際に地形をどのように近似して計算するかを
方形近似、球面近似、 楕円近似の3つのうちから選択できます。

今回のリリースでは方形近似を選択した場合について、
部分的にこの問題を改善しています。

具体的には二点が南半球の範囲にある場合において東経/西経をまたいでも
正しく距離を計算できるようになりました。

geo_distanceの詳細については以下を参照してください。

  http://groonga.org/ja/docs/functions/geo_distance.html

○ 変更点

さて、2.0.4からの変更点は以下の通りです。
  http://groonga.org/ja/docs/news.html#release-2-0-5

2.0.5リリース - 2012/07/29
--------------------------

改良

    * "rect" もしくは "rectangle" 引数を指定した南半球における距離の計算を
      サポート。 [#1418] [#1419] [#1420] [#1421]
    * [doc] スクリプト構文にてリテラルの説明を追加。
    * groonga-suggestとgroonga-httpdのソース外ビルドに対応。
    * クエリパラメータの区切り文字として ";"をサポート。 [#1406]
      [岩井さんが提案]
    * [doc] スクリプト構文の説明を追加。
    * スクリプト構文で近傍検索を行う 'column *N "word1 word2 ..."' 構文を
      サポート。 [#1423]
    * [doc] 後方一致検索の制限を追記。
    * 近傍検索で _key 疑似カラムをサポート。 [GitHub#19]
    * [doc] 基本的なECMAScript関連の構文を追加。
    * [doc] geo_distanceの説明を更新。
    * [rpm][fedora] Fedora 17をサポート。
    * [rpm][fedora] Fedora 16サポートを削除。
    * 論理演算子 "!" をサポート。 [GitHub#22]
    * [httpd] groongaデータベースごとのロケーション指定をサポート。

修正

    * groonga-httpdがMac OS Xでビルドできない問題を修正。
      [島田 浩二さんが報告]
    * groonga-httpdがインストール済みのヘッダファイルを使用しないよう
      に修正。
    * Mac OS X Lionでgroongaがビルドできない問題を修正。
    * [doc] table_removeコマンドの説明を修正。
    * インデックスが張られていないと未対応のオぺレータで無限ループする
      問題を修正。 [GitHub#20]
    * メモリリークを引き起すエラーコードの誤りを修正。
    * loadコマンドを処理中にはエラーメッセージを返すように修正。
    * カラムの値を壊すことにつながるエラーコードの誤りを修正。
    * 継続困難なエラーが発生した場合にloadコマンドを中断するように修正。
    * 正しくない--columnsの値が渡されたときloadコマンドを中断するよう
      に修正。
    * [admin] エラーメッセージをエスケープするように修正。
    * データベースの非互換を引き起こす読めないオブジェクトを無視するよ
      うに修正。 [#1429] [岩井さんが報告]
    * ロックされたデータベースのオープンをサポート。 [GitHub#21]

感謝

    * 島田 浩二さん
    * 岩井さん

-- 
HAYASHI Kentaro <hayas****@clear*****>




groonga-dev メーリングリストの案内
Back to archive index