# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English page

# お知らせ

## 4.0.2リリース - 2014/05/29

### 改良

- [doc] groonga-suggest-learner のドキュメントを更新しました。

- [doc] ファイルの更新方法に関するドキュメントを更新しました。 [GitHub#160] [cosmo0920さんがパッチ提供]

- [doc] ドキュメント中で「Groonga」という標記を使うようにしました。 [GitHub#162][GitHub#163][GitHub#164] [cosmo0920さんがパッチ提供]

- Ubuntu 14.04 Trusty Tahrをサポート。

- Ubuntu 12.10のサポートを終了しました。

- Ubuntuパッケージの配布場所としてLaunchpadのPPAを使うようにしました。詳細は `/install/Ubuntu` を確認してください。

- `/d/` から始まるリクエストはすべてAPIリクエストとして処理するようになりました。GroongaのHTTPサービスでファイルを提供したい場合は、 `/d/` 以外から始まるパスにファイルを置いてください。

- [munin] groonga-httpd をサポートしました。 [村上さんが報告]

- 夏時間をサポートしました。 [#2546]

- [doc] Mac OS X に `--with-mecab` の説明を追加しました。

- [http] シンタックスエラーが発生したときのHTTPのリターンコードを `500 Internal Server Error` から `400 Bad Request` に変更しました。

- [http][admin] jQueryのJSONプラグインを削除しました。 [GitHub#168] [大関さんがパッチ提供]

- [http][admin] strictモードを有効にしました。 [GitHub#169] [大関さんがパッチ提供]

- 変数の値を取得するAPIを Plugin のAPIとして使えるようにしました。 [GitHub#170] [村上さんがパッチを提供]

  - `grn_plugin_proc_get_var()` を追加。

  - `grn_plugin_proc_get_var_by_offset()` を追加。

- [実験的] tokenizer_list を追加しました。 [GitHub#171] [村上さんがパッチ提供]

- [実験的] normalizer_list を追加しました。 [GitHub#171] [村上さんがパッチ提供]

### 修正

- [index] 最大セグメント数が間違っていた問題を修正しました。この問題によりインデックスカラム用のすべてのリソースを使い切るとクラッシュしていました。 [#2438] [GMOメディア株式会社さんが報告]

- [doc] CentOS の中のtypoを修正しました。 [GitHub#166] [村上さんがパッチ提供]

- [doc] select で `drilldown_output_columns` のデフォルト値が間違っていた問題を修正しました。 [GitHub#167] [村上さんがパッチ提供]

- [doc] クエリー構文 で不足していた `\` エスケープの例外ケースを追加しました。 [@Yappoさんが報告]

### 感謝

- cosmo0920さん

- 村上さん

- 大関さん

- GMOメディア株式会社さん

- @Yappoさん

## 4.0.1リリース - 2014/03/29

### 改良

- [doc] 返り値のヘッダ詳細 (出力形式) についてのリンクを追加しました。

- JSONロード時のベクターの値とオブジェクトの値を表示できるようにしました。ロードに失敗したときのデータの詳細がわかるようになりました。

- selectコマンドに `adjuster` オプションを追加しました。adjusterオプションのシンタックスは INDEX_COLUMN @ STRING_LITERAL (* FACTOR) です。

- 重み付きベクターカラム をサポートしました。重みつきベクターを使うにはカラム作成時に 'COLUMN_VECTOR|WITH_WEIGHT' を指定する必要があります。

- SunOSでビルドに必要なMIN/MAXの定義がなかったので追加しました。[GitHub#154] [Sebastian Wiedenrothさんがパッチ提供]

- 使われなくなった領域を再利用するように改善しました。これによりデータべースの肥大化を抑制します。

- [doc] groonga-suggest-httpd のGETパラメータに関するドキュメントを追加しました。

- [doc] カラム のドキュメントを追加しました。

- [doc] ベクターカラム のドキュメントを追加しました。

- [column_list] 重みつきベクターカラムを表示できるようにしました。

- [column_create] マルチカラムインデックスを作成するときに、WITH_SECTIONフラグが指定されていない場合のエラーチェックを追加しました。

- [httpd] NginxHttpStubStatusModuleをgroonga-httpdで有効にしました。[長野雅広さんが提案]

### 修正

- 除算によるオーバーフローが発生する不具合を修正しました。例えば、'COLUMN(最小値) / -1' をInt32やInt64で定義したカラムに適用すると発生します。[#2307]

- 剰余演算 '%' ではなく、除算 '/' を行ってしまう不具合を修正しました。[#2307]

- [doc] column_rename のドキュメントの説明の誤りを修正しました。 [nise_nabeさんが報告]

- 配列の領域外アクセスが発生しうる問題を修正しました。[GitHub#158] [dcb314さんが報告]

### 感謝

- Sebastian Wiedenrothさん

- 長野雅広さん

- nise_nabeさん

- dcb314さん

## 4.0.0リリース - 2014/02/09

- バージョン4.0.0になりました!

### 改良

- [normalizer] "checks" というノーマライズ前の文字列だと次の文字の位置がどこか計算するのに使う値を表示できるようにしました。この機能を有効にするには WITH_CHECK フラグを使用します。

- [deb] Ubuntu 13.04 (Raring Ringtail)のサポートをやめました。

### 修正

- `grn_expr` のオブジェクトが解放後にアクセスされクラッシュしてしまう不具合を修正しました。Groongaサーバーを利用している場合にはこの不具合に該当しません。主にこの不具合の影響を受けるのはRroongaユーザーです。この不具合はRroongaのAPIに `_key` のような疑似カラム名を含んだ指定をすることで発生します。

- Groonga 3.0.8で導入されたカスケード削除を意図せず実行しないようにしました。参照元とインデックスのドメインが異なる場合にはカスケード削除を実行しないようにしました。 [groonga-dev,02073] [yokuさんが報告]

- `grn_snip` 構造体を公開しないようにしました。 `grn_snip` のかわりに `grn_obj` を使うようにしてください。もし `grn_snip_close` を使っていたら、 `grn_obj_close` に置き換えてください。

- [snippet_html] --queryが空のときにクラッシュする不具合を修正しました。 [groonga-dev,02097] [村上さんが報告]

- [snippet_html] カラムの中身が空のときのALERTレベルのメッセージを抑制するようにしました。 [groonga-dev,02097] [村上さんが報告]

- [groonga-httpd] "off" が通常のパス名として `groonga_query_log_path` で使われてしまう不具合を修正しました。 [groonga-dev,02113] [山本良二さんが報告]

### 感謝

- yokuさん

- 村上さん

- 山本良二さん

## 3.1.2リリース - 2014/01/29

### 改良

- [doc] "Groonga" 表記に更新しました。[cosmo0920さんがパッチ提供] [GitHub#136, #137, #138, #139, #140, #141, #142, #143, #144, #145, #146, #147, #148, #149, #150, #151]

- ロックタイムアウトの値をカスタマイズできるようにしました。 詳細は 全体設定 を参照してください。 [groonga-dev,02017] [yokuさんが提案]

- [doc] ロックタイムアウトについての説明を追加しました。

- `GRN_JA_SKIP_SAME_VALUE_PUT` をデフォルトで有効にしました。以前のバージョンまでは、この設定は 'no' となっていました。この変更により、Groongaのデータベースのサイズの増加を抑制できます。

- ネストしたインデックスと複数のキーワードを含むクエリに対するインデックスを使えるようにしました。この変更で複数のキーワードで絞り込んだときに検索結果が欠落していた問題が改善します。

- スニペット向けにノーマライザーをカスタマイズするためのAPIを追加しました。

### 修正

- 空のクエリに対してインデックスを使わないようにしました。この変更で、空のクエリでも検索できるようになりました。ただし空のレコードがたくさんあるとパフォーマンスの問題があることに注意してください。 [groonga-dev,02052] [村上さんが報告]

- "X || Y"と"X && Y"の返り値の振舞いをECMAScriptに準拠するようにしました。"X || Y"では、もしXかYが条件を満す場合にはXもしくはYそのものの値を返します。以前は1もしくは0を返していました。

- "X && Y"では、もしXとYが条件を満す場合には、1ではなく、Xの値を返します。もしXが条件を満さない場合には、0ではなくfalseを返します。

- スニペットが見付からない場合にはnullを返すようにしました。この変更により、 snippet_html のデフォルトの値を指定できるようになりました。この用途には "snippet_html(XXX) || 'デフォルトの値'"を使って下さい。

### 感謝

- cosmo0920さん

- yokuさん

- 村上さん

## 3.1.1リリース - 2013/12/29

### 改良

- [deb] Debianのパッケージングポリシーに準拠するようにしました。[groonga-dev,01930] [やまねさんが提案]

- [deb] Debian 6.0 (squeeze)のサポートをやめました。

- [deb] Ubuntu 10.04 (Lucid)のサポートをやめました。

- geo_in_rectangle が全世界をサポートしました。

- GeoPoint型の値のキャストに失敗したときにエラーを報告するようになりました。

- 疑似カラム名でアクセスするためにいくつかのマクロを公開するようにしました。[groonga-dev,01999] [whombxさんが提案]

- [doc] ドリルダウンのドキュメントを整理しました。[@Yappoさんが報告]

- 特定の範囲にあるカラムの値をフィルタリングするのに使う between 関数をサポートしました。

- [doc] Travis CIの環境情報を更新しました。[cosmo0920さんがパッチ提供]

- [rpm][fedora] Fedora 19のサポートをやめました。

- [rpm][fedora] Fedora 20をサポートしました。

- [doc] "Groonga" 表記に更新しました。[cosmo0920さんがパッチ提供] [GitHub#122, #123, #124, #125, #125, #126, #127, #128, #129, #130, #131, #131, #132, #133, #134]

### 修正

- [munin] GQTPのポート番号の誤りを修正しました。

- [geo_in_circle] "LONGITUDExLATITUDE" を geo_in_circle の3番目の引数に与えたときにGroongaがクラッシュする問題を修正しました。

### 感謝

- やまねひできさん

- whombxさん

- @Yappoさん

- cosmo0920さん

## 3.1.0リリース - 2013/11/29

### 改良

- [実験的] 同じ値なら更新をスキップするオプションをサポートしました。 GRN_JA_SKIP_SAME_VALUE_PUT=yesを環境変数に設定すると有効になります。

- 空のトークンを警告するときにトークナイザーと元のテキストを表示するよう にしました。これにより実際のトークンが表示されるので、トークンにまつわ る問題を調べるのに役立ちます。

- AIOサポートを打ち切りました。[#2054] [sho MINAGAWAさんが報告]

- [windows] Visual Studio Express 2008でのビルドをサポートしました。[#1964 21番目のコメント参照] 将来的にMariaDBへのバンドルを推進することを目的としています。

### 修正

- "_value"カラムの型がInt32として扱われる問題を修正しました。このバグ で"_value"カラムの値が意図せずキャストされてしまうことがありました。[瀧内さんが報告]

- ベンチマークプログラム向けにはGLib 2.14.0以降を要求するようにしました。 ベンチマークプログラムがGRegexを使うようになったためです。 Groongaを'--enable-benchmark'でビルドしようとしていた場合に問題となっ ていました。[groonga-dev,01890] [WINGさんが報告]

- 空のベクターカラムを更新しようとしたときにメモリリークする問題を修正し ました。

- ベクターカラムのインデックスを更新するときにメモリリークする問題を修正 しました。UTF-8として正しくないバイトシーケンスをカラムの値として保存 してある場合にこの影響を受けます。

- [プラグイン][windows] 'lib/groonga/plugins'を指定しないとregisterコマンドが 失敗する問題を修正しました。[@yitoさんが報告]

### 感謝

- sho MINAGAWAさん

- 瀧内元気さん

- WINGさん

- @yitoさん

## 3.0.9リリース - 2013/10/29

### 改良

- [doc][httpd] groonga_database_auto_create ディレクティブのドキュメントを追加しました。

- [httpd] groonga_cache_limit ディレクティブを追加しました。

- [doc] zlib/lzoによる圧縮がデフォルトで無効となっている理由を追加しました。 [groonga-dev,01845] [村上さんが提案]

- HTTPサーバーのRLIMIT_NOFILEに関連した制限を削除しました。HTTPサーバープロセスが4096以上のファイルを扱えるようにしています。

- [実験的] Groongaへmrubyを統合するためのAPIをいくつか追加しました。 [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [wanabeさんがパッチ提供]

- [travis] Travis-CI上でCMakeによるビルドをサポートしました。

- [doc] Tuning のドキュメントを追加しました。

- [実験的] ruby_load コマンドを追加しました。

- [httpd] メッセージボディが複数バッファリングされているPOSTリクエストをサポートしました。そのような場合にこれまではタイムアウトしていました。 [GitHub#120] [鷲田さんがパッチを提供]

- [gqtp] エラーメッセージをサポートしました。メッセージボディとしてテキストを二重引用符で囲むことなく返します。これは非互換な変更です。

- [http] "400 Bad request" を引数のエラーとしてサポートしました。

- [doc] 補完 のサンプルを追加しました。

- Ubuntu 13.10 Saucy Salamanderをサポート。

### 修正

- オーバーフローによってSEGVを引き起こす不具合を修正しました。この問題はインデックスのサイズが仮想メモリのサイズを超過したような場合に発生します。 [groonga-dev,01661] [村上さんが報告]

- テーブルを作成するときの不要なロックをかけないようにしました。この変更はGroonga 3.0.5で入ったパフォーマンス低下を解消します。

- データベースに参照カラムがある場合に削除できない不具合を修正しました。インデックスカラムや参照カラムを先に削除することなく、インデックステーブルやカラムを削除しようとして失敗するというものです。[Eito Katagiriが報告] [GitHub Rroonga #13]

- DATキーを使っているデータベースの削除でごみが残ったままになる不具合を修正しました。

- [http] 同じワーカースレッドにおいてHTTPヘッダのバッファを共有していることによりメモリリークが発生していた問題を修正しました。

- [httpd] groonga_database_auto_create パラメータが継承されない不具合を修正しました。これらのパラメータはlocationブロック以外では無視されていました。

- statusコマンドが正しくないキャッシュヒット率を返すことがある問題を修正しました。

- Time型にキャストするときにオーバーフローする問題を修正しました。これはTime型に32bitの範囲を超えた値を設定する場合に影響します。

### 感謝

- 村上さん

- wanabeさん

- 鷲田基さん

- Eito Katagiriさん

## 3.0.8リリース - 2013/09/29

### 改良

- [admin] 検索機能のエラー処理を改善しました。エラーメッセージを表示した後に、読み込み中のダイアログを消去します。 [orangainさんがパッチ提供]

- [admin] Enterキーで検索フォームを送信するようにしました。 [orangainさんがパッチ提供]

- [admin] 検索フォームにプレースホルダを表示するようにしました。この変更で使用例を表示するようになります。 [orangainさんがパッチ提供]

- [httpd] groonga_query_log_path ディレクティブをサポートしました。

- [doc] select コマンドのレスポンスのヒット数に関するドキュメントを更新しました。

- 連続するスペースによって作られる空のトークンをトークナイザーでは無視するようにしました。 [groonga-dev,01729] [村上さんが報告]

- [token delimit] 連続したスペースはスペース1つとして扱うことにしました。トークナイザーは2以上のスペースを入力として受付ます。

- [doc] 各カラムごとのインデックスとマルチカラムインデックスについての備考を追加しました。

- [doc] ソースコードへのリンクのラベルに言語の注記を追加しました。[groonga-dev,01751] [磯部さんが提案]

- カスケード削除 を参照しているレコードに対してサポートしました。これまでは、この操作でエラーになっていました。

- [doc] READMEのドキュメントの参照先を更新しました。[groonga-dev,01800] [磯部さんが報告]

- [実験的] ruby_eval コマンドを追加しました。

- [doc] GQTPとHTTPのサーバー利用に関して注記を追加しました。

### 修正

- [admin] COLUMN_VECTOR の値を追加するボタンが機能しない不具合を修正しました。

### 感謝

- @orangainさん

- 村上さん

- 磯部和広さん

## 3.0.7リリース - 2013/08/29

### 改良

- APIドキュメントを追加しました。[groonga-dev,01593] [GitHub#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#95,#96,#97,#98,#99,#100] [whombxさんがパッチを提供]

- [table_remove] 参照されているパトリシアトライもしくはハッシュテーブルが削除されないようにした。この変更は参照されているテーブルがうっかり削除されないようにします。

- 長すぎるトークン (4096バイトを超過) を単に無視するようにしました。この変更はトークンの登録時に影響します。以前は、警告ではなくエラーとして扱っていました。[groonga-dev,01571] [村上さんが提案]

- ログメッセージで無視された実際の語句を表示するようにしました。[groonga-dev,01621] [村上さんが報告]

- [httpd] POSTメソッドでデータをロードできるようにしました。 [GitHub#101] [鷲田さんがパッチを提供]

- [httpd] `groonga_log_path` ディレクティブをサポートしました。

- [httpd] `groonga_log_level` ディレクティブをサポートしました。

- [httpd] `groonga_cache_limit` ディレクティブをサポートしました。

### 修正

- 式のエラーによってスタックオーバーフローを引き起す可能性のある不具合を修正しました。この変更はエラーが積み重なって突然groongaがクラッシュするのを防ぎます。

- 参照先のないベクタカラムの静的インデックス構築によりクラッシュする不具合を修正しました。

- デーモンモード開始時のエラーでgroongaが終了しない不具合を修正しました。例えば、この不具合は `groonga -d /tmp/non-existence.db` で再現します。

- [dump] 誤ったテーブルの型がダンプされる不具合を修正しました。この不具合はテーブルの型が `TABLE_PAT_KEY` かつ キーが参照型のときに発生します。

- `--cache-limit` のデフォルト値が0になっていた不具合を修正しました。デフォルト値は100に変更されました。

- sub_filter を使用するとメモリリークするのを修正しました。

- [doc] defragコマンドの説明の誤りを修正しました。 [@naoinaさんが報告]

- [doc] 貢献する方法の説明を修正しました。 [GitHub#77] [横山さんがパッチを提供]

- [プラグイン] 複数回データベースを開いているときにクラッシュする不具合を修正しました。この不具合は複数のプラグインが使われていて、同一のデータベースが複数のプロセスによってオープンされているような場合に影響します。[groonga-dev,01596] [村上さんが報告]

- `AND` の後のネストしたマッチが動作しない不具合を修正しました。 `select ... --filter '... && nested.column @ "keyword"'` というクエリでこの不具合が再現します。 [groonga-dev,01599] [鷲田さんが報告]

- 特殊文字のドキュメントの誤字を修正しました。 [瀧内さんが報告]

- 不正な文字が渡されたときのエラーメッセージの誤りを修正しました。[吉田光男さんが報告]

### 感謝

- whombxさん

- @naoinaさん

- 横山さん

- 鷲田基さん

- 瀧内元気さん

- 吉田光男さん

## 3.0.6リリース - 2013/07/29

### 改良

- [doc] sub_filter の引数に関するドキュメントを追加しました。

- [suggest] 0MQ 3.xをサポートしました。[GitHub#63] [稲田さんが報告]

- NetBSD向けに `pthread_{mutex,cond}attr_setpshared()` が使えるかチェックを追加しました。[おばたさんが報告]

- クエリ構文でバックスラッシュでのエスケープをサポートしました。[groonga-dev,01520] [田辺さんが報告]

- [rpm][fedora] Fedora 19をサポート。

- [rpm][fedora] Fedora 18サポートを削除。

- [httpd] バンドルしているnginxのバージョンを1.4.2に更新しました。

### 修正

- 特定の関数(`grn_obj_path()`) が `select` のようなビルトイン関数で呼ばれたときにクラッシュする不具合を修正しました。[瀧内さんが報告]

### 感謝

- 稲田尚也さん

- おばたさん

- 田辺公平さん

- 瀧内元気さん

## 3.0.5リリース - 2013/06/29

### 改良

- [doc] `query()` の `match_columns` と `query_string` 引数のサマリを追加しました。

- subrecordの情報をテーブルのインスペクション時に表示するようにしました。

- シングルクォートした文字列を `output_columns` でもサポートしました。これは "XXX, '...'" といった表現がサポートされたことを意味しています。

- [doc] groongaサーバーを起動する際のroot権限と使用ポートに関する注意を追加しました。 [浅見さんが報告]

- [実験的] html_untag 関数を追加しました。

### 修正

- テーブル作成時に必要なロックをかけていないことでmroongaがクラッシュする不具合を修正しました。 [Y.Kentaroさんが報告]

- ClangやGCCによるコンパイル時の警告を抑制するように修正しました。

- "XXX && sub_filter(...)" という表現をすると `sub_filter(...)` が無視される不具合を修正しました。

- 間違ったタグ名がXMLの出力で使われる不具合を修正しました。この不具合は `output_columns` で "REFERENCE_VECTOR_COLUMN._key" という表現をすると影響を受けます。 参照カラムがXMLの出力に含まれません。

- [doc] `sub_filter()` のドキュメントにおける引数の誤りを修正しました。

- [deb] サービス停止中のステータスとして正しくない終了コードを返す不具合を修正しました。

- 算術演算の結果が壊れる不具合を修正しました。この不具合は例えば `_score` 疑似カラムへと計算結果を代入するような場合に影響します。

### 感謝

- Y.Kentaroさん

- 浅見公輔さん

- @orangainさん

## 3.0.4リリース - 2013/05/29

### 改良

- [tokenizer] ノーマライズした文字列が与えられないときにログメッセージを表示するようにしました。

- `geo_in_circle` の引数に `_key` が使えるようにしました。[@ceekzさんが報告]

- groongaをライブラリとして使うときに、ベクタカラムのキャストをサポートしました。

- Ubuntu 11.10 (Oneiric Ocelot)のサポートをやめました。

- `match_columns` にてマルチセクション対応のインデックス指定をサポートしました。

- `tokenize` コマンドをサポートしました。

- `mmap()` が失敗したときのシステムエラーメッセージの表示をサポートしました。

- [doc][windows] ビルド手順を "cmake --build" でできるように簡略化しました。

- サービススクリプトが応答しなくならないように最大実行時間を制限するようにしました。[GitHub#61] [firewoodさんが報告]

- ベクタを真偽値として評価できるようにしました。この変更で空のベクタはtrueとして評価されるようになります。

- 不要なログメッセージを何度も出さないようにしました。不要なログメッセージは"(N same messages are truncated)"として省略されるようになります。

- [munin][groonga_n_records] `exclude_tables` オプションを追加しました。これによりモニタリング結果から特定のテーブルを除去することができます。

- Debian 8.0 (jessie)をサポートしました。

- プラグインのディレクトリパスを除去することでデータベースファイルのポータビリティを改善しました。

### 修正

- [tokenizer] エラー時のメモリリークを修正しました。

- 空の文字列による類似検索がSEGVを引き起す不具合を修正しました。[groonga-dev,01346] [中井さんが報告]

- "VECTOR_COLUMN != xxx", "VECTOR_COLUMN && xxx" といった式が使われたときにメモリリークする問題を修正しました。

- SIGSTOPとSIGCONTによりgroongaサーバが停止してしまう不具合を修正しました。

- ノーマライザーがノーマライズ済み文字列としてNULLを返したときにクラッシュする不具合を修正しました。 [Y.Kentaroさんが報告]

- デーモン化する課程が OS Xでは動作しない不具合を修正。[groonga-dev,01440] [小西さんが報告]

- [deb] HTTP/GQTPプロセスがroot権限で実行されてしまう不具合を修正しました。

### 感謝

- @ceekzさん

- 中井さん

- firewoodさん

- Y.Kentaroさん

- 小西さん

- @orangainさん

## 3.0.3リリース - 2013/04/29

### 改良

- [suggest] `configuration.weight` を使って学習時の重みづけをカスタマイズできるようになりました。

- 位置情報検索のパフォーマンスを改善しました。例えば、 `geo_in_rectangle` の実行速度が10%程度以前より高速化しています。

- [rpm][centos] `additional_configure_options` パラメータを追加しました。groongaをカスタマイズしてビルドするのにspecファイルを修正する必要はありません。

- KyTea 0.4.5をサポート。

- ベクターに対し "vector[N]" という構文でインデックスを指定してアクセスできるようにした。

- groonga-suggest-create-dataset コマンドに `--default-tokenizer` オプションを追加した。

- groonga-suggest-create-dataset コマンドに `--help` オプションを追加した。

- Ubuntu 13.04 Raring Ringtailをサポート。

## 3.0.2リリース - 2013/03/29

### 改良

- 2つ以上のインデックスをテーブルのキーに対して張れるようにしました。この変更はインデックスを張ったキーへ新たなキーをロードしたときにクラッシュしないようにします。

- `X + Y`, `X - Y`, `X * Y`, `X / Y`, `X % Y`, `X >> Y`, `X << Y`, `X | Y`, `X ^ Y`, `X & Y` や `X >>> Y` といった演算子をInt8, UInt8, Int16, UInt16 や UInt64に対してもサポートしました。

- load コマンドのドキュメントを追加。

- `X += Y`, `X -= Y`, `X *= Y`, `X /= Y`, `X %= Y`, `X <<= Y`, `X >>= Y`, `X >>>= Y`, `X &= Y`, `X |= Y` や `X ^= Y` といった演算子をInt8, UInt8, Int16, UInt16 や UInt64に対してもサポートしました。

- `-X` といった演算子をInt8, UInt8, Int16, UInt16 や UInt64に対してもサポートしました。

- `--output_columns` で複雑な文字列の連結をサポートしました。例えば `--output_columns '"<" + title + ">"'` といったクエリを書けるようになりました。

- 開発ページにgroongaリポジトリの情報を追加しました。

- `sub_filter()` 関数を追加しました。

- `query()` 関数でクエリ展開をサポートしました。この変更で `query("MATCH_COLUMNS", "QUERY","QueryExpanderTSV")` といったクエリが書けるようになりました。

- `--query_expansion` を `--query_expander` に変更しました。 `--query_expansion` は引き続き使えますが、非推奨となります。

### 修正

- `snippet_html(XXX), XXX` を実行すると "stack error"になる不具合を修正しました。この不具合は `--output_columns 'snippet_html(title), content'` といったクエリに影響します。[Groonga-talk (no subject)] [Hendro Wibowoさんが報告]

- インストールのドキュメントの誤字を修正。 [hinoさんが報告]

- Travi-CIセットアップ用のスクリプトが動作しない不具合を修正した。[groonga-dev,01248] [ongaeshiさんが報告]

- メモリリークを修正した。この不具合は次の3つの条件が重なったときに発生します。参照カラムかつそのカラムがベクター型であって、キーのサイズが25バイト以上のとき。

- `--output_columns _score.GARBAGE` というクエリによってクラッシュする不具合を修正した。この不具合はGARBAGEが存在しないときに影響します。

### 感謝

- Hendro Wibowoさん

- hinoさん

- ongaeshiさん

## 3.0.1リリース - 2013/02/28

### 改良

- loadコマンドでデータをロードするときに参照カラムに対するBoolの設定をサポートしました。

- ネストしたインデックスに対してAND検索できるようになりました。この変更で、"COLUMN1.COLUMN2 >= 1 && COLUMN1.COLUMN2 <=3"という検索ができるようになります。ただし、"1 <= COLUMN1.COLUMN2" という表記はまだサポートしていません。これを指定すると、"COLUMN1.COLUMN2 <= 1"とみなします。

- インデックスの張られていない要素に対するソートをサポートしました。この変更は `--sortby geo_distance(...)` のようにインデックス化されていない要素をソートしようとしたときに結果が抜け落ちてしてしまう場合に影響します。

- 参照カラムの範囲検索をインデックスを使って検索できるようにした。この変更でTABLE_PAT_KEYやTABLE_DAT_KEYを使ったネストしたインデックスの `_key` に対しても範囲検索できるようになった。

- [rpm][centos] MeCab 0.995をサポート。

- [doc] `column_rename` や `truncate` コマンドのドキュメントを追加。

### 修正

- `grn_index_cursor_next()` が意図せずNULLを返す不具合を修正しました。このせいで要素を削除した後に不正なインデックスを返していました。この不具合はmroongaをストレージモードで動かしたときに発生します。 [groonga-dev,01192] [b senbokuさんが報告]

- `geo_distance()` をインデックスを使ってソートしようとするときに落ちる不具合を修正しました。この不具合は見付けたレコードのカウントが正しくないことで発生します。

- [httpd] データベースのオーナー/グループのデフォルト設定がgroongaとなっている箇所を有効にしました。

### 感謝

- b senbokuさん

## 3.0.0リリース - 2013/02/09

- バージョン3.0.0になりました!

### 修正

- [deb][rpm] `groonga-tokenizer-mecab` パッケージのインストール時に必要な辞書をEUC-JPでなくUTF-8の辞書ものを明示的にインストールするように修正した。

- int64の表記がuint32の値として切り捨てられてしまう不具合を修正した。int64の文字列として表記した場合には、この不具合の影響はありません。

- [rpm][centos] `groonga-server-http` サービスの停止に失敗する不具合を修正した。 [GitHub#53] [岩井さんがパッチ提供]

### 感謝

- 岩井さん

## 2.1.2リリース - 2013/01/29

### 改良

- 複数の `query()` を `select` コマンドでサポートしました。例えば、キーワードごとに異なる重みづけを指定して検索するのに'query("column * weight1", keyword1) || query("column * weight2", keyword2) || ...'などと `--filter` に指定することができます。

- 実験的機能であったビューを削除しました。

- `grn_logger_reopen` APIを追加しました。 `grn_logger_info` APIは非推奨となりました。 `grn_logger` APIを代りに使ってください。

- `grn_default_logger_set_path()` と `grn_default_logger_get_path()` APIを追加しました。グローバル変数としての `grn_log_path` は削除しました。上記変数を使うにはAPIを使用してください。

- `grn_default_query_logger_set_path()` と `grn_default_query_logger_get_path()` APIを追加しました。グローバル変数としての `grn_qlog_path` は削除しました。上記変数を使うにはAPIを使用してください。

- テーブル と ノーマライザー に関するドキュメントを追加。

- [deb][rpm] `groonga-tokenizer-mecab` パッケージのインストール時に必要な辞書をインストールするように改善した。

- 範囲検索を カラムインデックスによる関連テーブルをまたぐ検索 でもサポートした。例えば、 'column1.column2...columnN <= "1988-01-04 00:00:00"' というように `--filter` に範囲を指定することができるようになります。

- [rpm][fedora] Fedora 18をサポート。

- [rpm][fedora] Fedora 17サポートを削除。

- [doc] サーバーパッケージ のドキュメントを追加。

- [doc] query のドキュメントを追加。

### 修正

- MeCabトークナイザーの共有オブジェクトが見つからなくてもエラーをログに記録しないようにした。 [groonga-dev,01174] [wingさんが報告]

- [httpd] CentOS 5.4で `SED` 変数を明示的に設定することで、configureスクリプト実行が失敗しないようにした。

- 値を設定していない未初期化のベクタカラムの値を `select` コマンドで参照したときにクラッシュする不具合を修正した。

### 感謝

- wingさん

## 2.1.1リリース - 2012/12/29

2.1.0のバグフィックスリリースです。2.1.0を使っている人は2.1.0ではなく2.1.1を使ってください。

### 修正

- groonga 2.0.8以前で作成したデータベース中の `KEY_NORMALIZE` 関連の情報が失われる問題を修正。

## 2.1.0リリース - 2012/12/29

ご用心

2.1.0ではなく2.1.1を使ってください。2.1.0は `KEY_NORMALIZE` 関連の深刻な問題があります。

ご用心

このリリースでは `table_list` や `column_list` コマンドに関する非互換な変更があります。もしご自身で作成したプログラム等でこれらコマンドの出力結果に依存しているものがあるなら、"null"文字列ではなくnullをサポートする必要があります。

このリリースでは `--normalizer` オプションをサポートしましたが、副作用があり、一度でも古いバージョンのデータベースを新しいバージョンのgroongaで開くと、古いバージョンのgroongaではデータベースを開けなくなります。

もうひとつトークナイザプラグインAPIに関する非互換な変更があります。 `grn_tokenizer_query_open` APIの引数が変更されました。このAPIの変更はトークナイザプラグインの開発者に影響があります。

### 改良

- [doc] カラムインデックスによる関連テーブルをまたぐ検索 に関するドキュメントを追加。

- snippet_html の引数として式を指定できるようにした。この変更で、 `snippet_html("STRING" + "STRING")` と書けるようになります。 "STRING"にはカラム名や文字列を指定できます。 [嶋田 大貴さんが報告]

- 正規化を行うプラグインを作成できるようにした。

- `groonga-query-log-analyzer` を groonga-query-log というRubyGemsにして移動しました。これによりgroongaのパッケージをインストールせずにクエリログの解析を行えるようになります。

- table_create コマンドにて `--normalizer` オプションの指定をサポートしました。正規化のためのプラグインを指定できるようになります。

- "No Object"を表現するのに"null"文字列ではなくnull値を使うように変更しました。これは非互換な変更で `table_list` や `column_list` といったコマンドの出力結果に影響します。

- 正規化の振舞いを制御するためのフラグを `grn_tokenizer_query_open` APIの最後の引数として追加した。

- コマンド リストに書かれた継続行のサポート。

- カラムインデックスによる関連テーブルをまたぐ検索 をキーのないテーブルだけでなく、ハッシュやパトリシア木、ダブル配列を指定したテーブルでも使えるように改善した。

### 修正

- [windows] `O_BINARY` フラグをファイルを開くときに指定するようにした。groonga HTTPサーバが無限ループに陥っていた問題が解決します。 [GitHub#47] [Shimomura Tatsuyaさんがパッチ提供]

- `--default-match-escalation-threshold` が負数を受け付けないため、 検索 時に行なわれる挙動の変更を無効化できない問題を修正しました。オプションの詳細は --default-match-escalation-threshold を参照してください。

- `--output_columns` で"*"のあとに `_score` を指定しても無視される不具合を修正した。

### 感謝

- 嶋田 大貴さん

- Shimomura Tatsuyaさん

## 2.0.9リリース - 2012/11/29

### 改良

- `geo_distance` 関数の近似方法として `rectangle` を指定したときに境界をまたいでも距離の算出できるようにした。 [#1534]

- [doc] GQTP の仕様についてのドキュメントを追加した。

- groongaコマンドの起動時に致命的でない `getaddrinfo()` 関数のエラーは無視するようにした。この変更はgroongaを通常使用する場合には影響しません。その理由はデフォルトのホスト名が解決できるかチェックするのに使っていただけだからです。

- [実験的] キーワードとその周辺のテキストを抽出するための `snippet_html()` 関数を追加した。詳細については snippet_html を参照してください。

- テーブルのレコードを出力している際に発生したエラーを表示するようにした。

- 複数のテーブルで関連したインデックスが設定されていれば、ネストしたインデックス (複数のカラムインデックス名を `.` で連結して指定)に対してキーワードで検索できるようにした。

- `TokenMecab` トークナイザを使ったときにログに"[tokenizer][mecab]"タグを出力するようにした。

- `TokenKyTea` トークナイザを使ったときにログに"[tokenizer][kytea]"タグを出力するようにした。

- 検索結果の内容のうち、コマンドのエラー表示は別の配列として表示するようにしました。この変更は非互換な変更ですが、既存のプログラムには影響しません。

- 出力形式 に関するドキュメントを追加。

- リターンコード に関するドキュメントを追加。

- インデックスを使った指定範囲の検索をサポート。

### 修正

- GQTPヘッダー にてステータスコードにネットワークバイトオーダーを使用するように修正した。ネットワークプロトコルの慣習に合わせたものですが、これによりgroongaバージョン2.0.8以下のクライアントからgroongaバージョン2.0.9以上のサーバに接続してコマンドの実行に失敗したときにバイトオーダーが異なるため、ステータスコードを正しく表示できなくなります。

- UTF-8の正規化でオフセット計算の誤りを修正した。この変更は `snippet_html()` 関数の返す結果に影響し、キーワードとタグ周辺のテキストが誤った位置に挿入されないようにする。 [#1531] [嶋田大貴さんが報告]

- [windows] groongaコマンドの起動時にバッファの範囲外アクセスによるセグメンテーションフォルトが発生しないように修正した。 [#1532] [Akio Tajimaさんがパッチ提供]

- [windows] カラムに保存しているデータのサイズが128MBを超える場合に、そのデータを参照できない不具合を修正した。 [groonga-dev,01088] [ongaeshiさんが報告]

- `Int*` や `UInt*` ( `Int32/Uint32` は除く) に対してカラムインデックスによる検索結果が正しくない不具合を修正した。

- 削除したはずのレコードが検索結果で見つかる問題を修正した。

- latin1やkoi8rの正規化で、与えた文字列データにNULL終端が途中に含まれているとすべての文字列データを正規化できない不具合を修正した。

- `select` コマンドでデータが保存されていないカラムを参照したときに、型にあったデフォルト値を返さない不具合を修正した。

- Fixed to exclude the value of vector column metadata in 静的なインデックス構築方法. This change not to contain such a metadata as search results.

### 感謝

- 嶋田 大貴さん

- Akio Tajimaさん

- ongaeshiさん

## 2.0.8リリース - 2012/10/29

### 改良

- [rpm] server-httpとhttpdパッケージの説明を改善した。 [Daiki Uenoさんが提案]

- プラグインによるクエリ展開のカスタマイズをサポート。

- [実験的] クエリ展開を行う `QueryExpanderTSV` プラグインを追加。

- Ubuntu 12.10 Quantal Quetzalをサポート。

- [実験的] クエリの `output_columns` で関数呼び出しをサポート。

- [doc][rpm] MeCab辞書のインストールについて説明を追加。 [serihiroさんが報告]

### 修正

- [rpm] 不要な"Requires"をspecファイルから削除するようにした。[Daiki Uenoさんが報告]

- groonga-server-gqtpパッケージのライセンス表記が不正確なのを修正した。

- [admin] レコードの編集ボタンで誤ったレコードが表示されるのを修正した。 [GitHub#34] [firewoodさんが報告]

- [deb] 不要なpcreパッケージへの依存を削除した。

- [deb] パッケージに入っていなかったテーブルプラグインを添付するようにした。

### 感謝

- うえのさん

- firewoodさん

- serihiroさん

## 2.0.7リリース - 2012/09/29

### 改良

- [doc] `--query_flags` の説明を追加。

- [doc][httpd] gzip圧縮についての設定サンプルを追加。

- [httpd][rpm][centos] groonga-httpd initスクリプトを追加。

- [rpm] logrotateの設定ファイルを追加。

- インストール中のデータベース作成をサポート。

- [httpd] `groonga_database_auto_create` ディレクティブをサポート。

- 集合演算でのスコアのマージをサポート。 [GitHub#31]

- [httpd] POSTによる `load` コマンドをサポート。

- 一時結果テーブルを作成する際のエラーチェックを追加。 [GitHub#33]

- GQTP サーバーパッケージを追加。

- `max()` 関数を追加。

- `min()` 関数を追加。

### 修正

- `load` コマンド実行時にベクタ要素へ主キー値の属する型情報を設定するように修正した。 [GitHub#30]

- [httpd] NULLでの初期化漏れを修正した。 [@Kiskeさんが報告]

- [httpd] `content_type_len` のサイズ設定漏れを修正した。

- [rpm][fedora] `groonga.service` で `--bind-address` を使うように修正した。

- 不適切なフィルタの引数によリクラッシュする問題を修正した。 [GitHub#32]

- Time型からTime型へのキャストで値が壊れる不具合を修正。

- Time型からFloat型へのキャストで値が壊れる不具合を修正。

### 感謝

- @Kiskeさん

## 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パラメータの指定漏れを修正した。

- Fixed a bug that the last 1 byte for cache key is ignored by `select` command.

- 複雑な関数呼び出しで引数の個数の検出処理を修正した。

- Clangによる警告を抑制するように修正した。

- `clearlock` コマンドを実行する際に `add` コマンドが存在しないことによる前方非互換なエラーを修正した。

- [windows] バイナリデータを含むデータベースを開く際のエラーを修正した。 [@yitoさんが報告]

### 感謝

- 岩井さん

- @yitoさん

## 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データベースごとのロケーション指定をサポート。

- loadコマンドを処理中にはエラーメッセージを返すように改善。

- 継続困難なエラーが発生した場合にloadコマンドを中断するように改善。

- 正しくない--columnsの値が渡されたときloadコマンドを中断するように改善。

- ロックされたデータベースのオープンをサポート。 [GitHub#21]

### 修正

- groonga-httpdが Mac OS Xでビルドできない問題を修正。[島田 浩二さんが報告]

- groonga-httpdがインストール済みのヘッダファイルを使用しないように修正。

- Mac OS X Lionでgroongaがビルドできない問題を修正。

- [doc] table_remove コマンドの説明を修正。

- インデックスが張られていないと未対応のオぺレータで無限ループする問題を修正。 [GitHub#20]

- メモリリークを引き起すエラーコードの誤りを修正。

- カラムの値を壊すことにつながるエラーコードの誤りを修正。

- [admin] エラーメッセージをエスケープするように修正。

- データベースの非互換を引き起こす読めないオブジェクトを無視するように修正。 [#1429] [岩井さんが報告]

### 感謝

- 島田 浩二さん

- 岩井さん

## 2.0.4リリース - 2012/06/29

### 改良

- KyTea 0.4.2のみをサポート。

- KyTea 0.4.1以前のサポートを削除。

- [実験的] nginxベースのHTTPインタフェースをサポート。

- `"rect"` もしくは `"rectangle"` 引数を指定した北半球における距離の計算をサポート。

- [doc] Travis CI の統合に関するドキュメントを追加。

- [doc] 全文検索とフレーズ検索についての説明を追加。詳細については 全文検索条件 および フレーズ検索条件 を参照してください。

- [doc] 比較条件についての説明を追加。詳細は 条件式 を参照してください。

- [doc] クエリー構文 のサンプルを追加。

- [doc] 結合式 の説明を追加。

- [doc] 前方一致検索条件 と 後方一致検索条件 の説明を追加。

- インデックスを使った後方一致検索をサポート。

- [doc] grn_expr に関するドキュメントを追加。

- [munin] RubyGemsでインストールしたJSONライブラリをサポート。 [GitHub#17] [岩井さんがパッチ提供]

- [doc] チュートリアル記載のTime型指定値についての説明を更新。 [#1405] [岩井さんが報告]

- [rpm] groongaパッケージから必要のないgroonga-tokenizer-mecabパッケージへの依存関係を削除。 [GitHub#18] [岩井さんがパッチ提供]

### 修正

- Mac OS Xでバッチモードを使用した際にコマンドプロンプトの表示が意図しない状態になる問題を修正。 [@soundkitchenさんが報告]

- 誤ったコマンドをクライアントモードで実行しても終了しないように修正。 [#1305]

- `--query` 構文で `'=R'` が `'OR'` として扱われてしまう問題を修正。 [#1393]

### 感謝

- @soundkitchenさん

- 岩井さん

## 2.0.3リリース - 2012/05/29

### 改良

- [doc] リリース手順を追加。

- 1プロセスで開けるファイルディスクリプターの最大数が4096という制限を削除。

- [実験的] tableプラグインを追加。

- [doc] select コマンドの説明を追加。

- [doc] 実行例をコピー&ペーストしやすくした。

- [windows] Visual Studio 2010 ExpressとCMakeを使ったビルドをサポート。詳細は Windows を参照してください。

- [doc][solaris] Solarisでビルドするためのドキュメントを追加。詳細は Oracle Solaris を参照してください。

- [doc][yum] epel-releaseパッケージのバージョンを更新。[岩井さんが報告]

- [doc][centos6] RepoforgeにあるCentOS 6用のMuninを使うという設定を削除。[岩井さんが報告]

- ソースをzip形式でも配布するようにした。

- [munin] groonga_dist Muninプラグインが複数のファイルを使っているオブジェクトをサポート。

- Travis CIを使うようにした。

- [yum] groongaのyumリポジトリを提供するRPMパッケージ名をgroonga-repositoryからgroonga-releaseへと変更。これは、centos-releaseやfedora-releaseといったRPMパッケージの命名規則とあわせるためである。

### 修正

- [doc] yumリポジトリを更新するためのコマンドを修正。 [岩井さんが提案]

- [deb] logrotateでlog_reopenコマンドが誤ったプロトコルを使用する不具合を修正。

- XMLレスポンスのERRORタグが壊れている問題を修正。[#1363] [GitHub#13] [岩井さんがパッチ提供]

- grn_ctx_fin()がgrn_ctxの一部をクリアしきれていない問題を修正。

- `&!` 演算子をグループ化した式と一緒に使うと間違った結果を返す不具合を修正。[#1372]

- インデックスのソースに指定したカラム経由でレコードのキーを登録するとキーが正規化されない問題を修正。

### 感謝

- 岩井さん

## 2.0.2リリース - 2012/04/29

ご用心

今回のリリースよりパッケージへ署名する鍵を変更しました。groongaパッケージを更新する前にパッケージ署名用の新しい鍵をインポートして下さい。

Debian/Ubuntu:

    % sudo apt-get update
    % sudo apt-get -y --allow-unauthenticated install groonga-keyring

CentOS/Fedora:

    % sudo yum makecache
    % sudo yum install --nogpgcheck -y groonga-repository

### 改良

- [pkg-config] 必要のないMessagePackへの依存関係を削除。

- [rpm][fedora] libeditをサポート。[#1325] [IWAI, Masaharuさんが提案]

- [rpm] zlibおよびLZOをサポート。[#1324] [IWAI, Masaharuさんがパッチ提供]

- [groonga] デーモン化のタイミングを改善。groongaサーバーはソケットがlisten状態になった後にデーモン化するようになった。これによりgroongaサーバーがデーモン化した時点で接続を受け付けられる状態になっている。 [#1326]

- [admin] groongaの管理ページでサジェスト機能をサポート。

- [dump] Mecabのトークナイザのロードエラーを無視するようにした。

- CMakeをサポート。

- [load] カラムの値が設定できなかった時のエラーレポートをサポート。

- 類似検索をサポート。類似検索の構文は `select --filter "column *S 'TEXT'"` 。 [#1342]

- [apt][yum] パッケージ署名用の鍵を変更。

- Ubuntu Precise Pangolinをサポート。

- [apt] groongaのパッケージ署名用の鍵を提供するgroonga-keyring debパッケージを追加。

### 修正

- [deb][rpm] 非推奨の `--address` オプションではなく `--bind--address` オプションを使用するようにした。[#1320] [IWAI, Masaharuさんがパッチ提供]

- [deb] groonga-serverパッケージの設定ファイルを `/etc/default/groonga` から `/etc/default/groonga-server` へ改名。

- [rpm][fedora] groonga-serverの%postで更新処理を行うかどうかの条件を修正。 [GitHub#11] [Daiki Uenoさんがパッチ提供]

- [rpm] 必要のないログを削除。 [#1328] [IWAI, Masaharuさんがパッチ提供]

- [deb][rpm] curlへの依存関係を追加。 [GitHub#12] [IWAI, Masaharuさんがパッチ提供]

- [rpm] groongaパッケージから必要のないrubyパッケージへの依存関係を削除。 [#1330] [IWAI, Masaharuさんが提案]

- [deb] groonga-serverの設定ファイルに未設定だったデフォルト値を追加。

- 非常に大きな転置インデックスを更新しながら検索するとクラッシュする不具合を修正。 [#1329]

- 文字列をバイト文字列でなく文字として比較している不具合を修正。 [#1340] [Kawaji Shinyaさんが報告]

### 感謝

- 岩井さん

- うえのさん

- Shinya Kawajiさん

## 2.0.1リリース - 2012/03/29

### 改良

- 別ディレクトリでのビルドをサポートした。 [#1298] [かずひこさんが報告]

- [solaris] Solaris 11上でのビルドできるようにした。 [かずひこさんが報告]

- [test] 機能テストを追加した。

- [test] Rubyでテストを実行するためにはconfigureに `--with-ruby19` オプションを指定しなければいけないようにした。

- [dump] デフォルトトークナイザーを持っているテーブルのレコードもダンプするようにした。

- [suggest] `similar_search` オプションを追加。

- [groonga] 非推奨の `-a` と `--address` と `--admin-html-path` オプションを削除した。

- 戻り値チェックを追加した。 [GitHub#9] [Markus Elfringさんが報告]

- [dat] 単語抽出処理をサポートした。

- ロゴ を追加した。

- HTMLのデザインを更新した。

- `grntest` を `groonga-benchmark` に改名した。

- CentOS 5上で `autogen.sh` が動くようにした。

- [linux] `vm.overcommit_memory` カーネルパラメーターの値をチェックするようにした。 [#1289]

- `grn_snip` が `grn_obj` の仕組みを使うようにした。 [#1054]

### 修正

- インストールしたRubyスクリプトをuninstallでアンインストールできない問題を修正した。 [#1299] [かずひこさんが報告]

- Gemfileを追加した。 [#1302] [かずひこさんが報告]

- インデックスに登録されているレコードが見つからないことがある問題を修正した。この機能を使っているのはmroongaだけである。 [#1303]

- [groonga] `--server-id` オプションの名前の最後に `-id` がついていなかったので追加した。

- latin1を正規化するときに意図しないメモリ領域にアクセスしてしまう問題を修正した。

### 感謝

- かずひこさん

- Markus Elfringさん

## 2.0.0リリース - 2012/02/29

### 改良

- [dat] 長さが0かどうかキーをチェックするようにした。

- [windows] GCC関連のDLLを同梱するようにした。 [groonga-dev,00686] [鈴木さんが報告]

- [php] PHP 5.4に対応した。 [Daiki Uenoさんがパッチ提供]

- FSFの住所を更新した。 [Daiki Uenoさんが提案]

- [fedora] systemdに対応した。 [Daiki Uenoさんがパッチ提供]

- [rpm][debian] デフォルトのプロトコルをgqtpからHTTPに変更した。

- [rpm][centos] statusコマンドに対応した。

- ログメッセージから必要のない `:` を削除した。

- 非推奨となっていたgrn_queryを削除した。 [#1247]

- テーブル作成時にgrn_ctx_at()の呼び出し回数を減らした。

- [pat] キャッシュに対応した。

- [tokenizer] トークナイザーAPIを整理した。

- 名前に `@` も使えるようにした。

- [tokenizer] KyTea を使ったトークナイザーを追加した。

- 静的なインデックス構築方法 をサポートした。

- [tokenizer] MeCab 0.993に対応した。 [groonga-dev,00703] [Masaharu YOSHIOKAさんが報告]

- [windows] MessagePackに対応した。

### 修正

- [pat] 最後のノードを見つけられない問題を修正した。 [#1258]

- [doc] 日本語ページ内のリンクを修正した。 [@naoinaさんが報告]

- [doc] 間違ったデフォルト値を修正した。 [@naoinaさんが報告]

- 誤字を修正した。[かずひこさんが報告]

- [http] `load` コマンドのエラーがクリアされない不具合を修正した。 [@wareohjiさんが報告]

### 感謝

- 鈴木さん

- うえのさん

- @naoinaさん

- かずひこさん

- Masaharu YOSHIOKAさん

- @wareohjiさん

## 1.3.0リリース - 2012/01/29

### 改良

- GRN_DB_KEY=patまたはGRN_DB_KEY=dat環境変数値による動的なDBのキー管理テーブルの変更をサポート。

- デフォルトのDBのキー管理テーブルを指定する `--with-default-db-key` configureオプションを追加。

- geo pointデータ型の値として""をサポート。この値は"0x0"として扱う。

- キャスト時のエラーメッセージにカラム名も含めるようにした。

- loadエラー時に標準入力のファイル情報を表示しないようにした。

- write-strings関連の警告を有効にし、警告がでないようにした。 [montywiさんが提案]

- MessagePack形式の出力機能をサポート対象の機能とした。 [#1215]

- `*_set_value()` 関数の `void *` に `const` を追加した。

- CとC++でコンパイル時の警告フラグを有効にした。

- 値なしの `--with-libevent` configureオプションをサポート。

- `grn_table_get()` がgrn_dbに対応した。 [#1242]

- [rpm] groonga-serverから必要のないgroogna-munin-pluginsへの依存関係を削除。 [#1251] [Masaharu IWAIさんが提案]

- [rpm] groongaから必要のないgroogna-docへの依存関係を削除。 [#1251] [Masaharu IWAIさんが提案]

- [dat] `grn_dat_repair()` によるデータ復旧対応。

- `grn_table_at()` がgrn_dbに対応。

- [suggest] 「安定している」仕様とした。

- [suggest][complete] 前方一致検索で正規化した値を使って検索するようにした。

- 実験的な機能としてオフラインインデックス作成機能を追加。いまのところデフォルトでは無効になっているが、USE_OFFLINE_INDEXER=yes環境変数を指定することで有効にできる。

- mroonga用に内部API `grn_obj_path_by_id()` を追加した。

- [suggest][httpd] 未知のパラメーターをgroongaに渡すようにした。

- [output][xml] 読みやすいように `</RESULT>` の前に改行を追加。

- [doc][output] 出力形式に関するドキュメントを追加。

- `table_rename` コマンドを追加。 [#1234]

- `column_rename` コマンドを追加。 [#1234]

### 感謝

- montywiさん

- Masaharu IWAIさん

## The old releases

- 1.2.9リリース - 2011/12/29
  - 改良
  - 修正
  - 感謝
- 1.2.8リリース - 2011/11/29
  - 改良
  - 修正
  - 感謝
- 1.2.7リリース - 2011/10/29
  - 改良
  - 修正
  - 感謝
- 1.2.6リリース - 2011/09/29
  - 改良
  - 修正
  - 感謝
- 1.2.5リリース - 2011/08/29
  - 改良
  - 修正
- 1.2.4リリース - 2011/07/29
  - 改良
  - 修正
  - 感謝
- 1.2.3リリース - 2011/06/29
  - 改良
  - 修正
  - 感謝
- 1.2.2リリース - 2011/05/29
  - 改良
  - 修正
- 1.2.1リリース - 2011/04/29
  - 改良
  - 修正
  - 感謝
- 1.2.0リリース - 2011/03/29
  - 改良
  - 修正
  - 実験的
  - 感謝
- バージョン1.1.xのお知らせ
  - 1.1.0リリース - 2011/02/09
- バージョン1.0.xのお知らせ
  - 1.0.8リリース - 2011/02/02
  - 1.0.7リリース - 2011/01/29
  - 1.0.6リリース - 2010/12/31
  - 1.0.5リリース - 2010/12/29
  - 1.0.4リリース - 2010/11/29
  - 1.0.3リリース - 2010/10/29
  - 1.0.2リリース - 2010/09/09
  - 1.0.1リリース - 2010/09/06
  - 1.0.0リリース - 2010/08/29
- バージョン0.xのお知らせ
  - 0.7.7リリース - 2010/08/25
  - 0.7.6リリース - 2010/08/19
- News in Senna period
  - Senna -> groonga - 2009/01/14
  - 2006/04/05
  - 2006/03/03
  - 2006/01/16
  - 2006/01/12
  - 2005/12/22
  - 2005/10/27
  - 2005/09/17
  - 2005/09/08
  - 2005/08/16
  - 2005/07/05
  - 2005/06/23
  - 2005/04/12