お知らせ¶
4.0.8リリース - 2014/11/29¶
改良¶
[deb] Travis-CIの動作環境であるUbuntu 12.04のサポートを再び有効にしました。
[mruby] デバッグ用途に
"pp"
をサポートしました。内部のオブジェクトをよりわかりやすく表示できるようになりました。全文検索のクエリで
--match_columns
と--query
の組み合わせでインデックスが使えず逐次検索になる場合、--match_columns
に指定されているカラムが1つだけなら検索できるようにしました。 [groonga-dev,02902] [篠田さんが報告][実験的] in_values で逐次検索に自動的に切り替えられるようにしました。逐次検索のほうがインデックスを使った検索よりも速い場合があります。たとえば、絞り込む前のレコードの件数が、さらに
in_values
とAND
で絞り込むのに使うレコード数に比べてだいぶ少ないような場合です。このときGRN_IN_VALUES_TOO_MANY_INDEX_MATCH_RATIO
環境変数の値が逐次検索をするのか、インデックスを使って検索をするのかの閾値として使われます。[mruby] 相対パスのスクリプトの読み込みをサポートしました。
mrubyが有効な場合にクエリオプティマイザーのテストを簡単に書けるようになりました。
トークンフィルターを使った静的なインデックス作成をサポートしました。 [GitHub#239] [村上さんがパッチ提供]
[実験的] between でも逐次検索への自動切り替えをサポートしました。
GRN_BETWEEN_TOO_MANY_INDEX_MATCH_RATIO
環境変数を閾値として使います。基本的な考え方はGRN_IN_VALUES_TOO_MANY_INDEX_MATCH_RATIO
と同じです。[実験的] select コマンドで複数のキーを指定してドリルダウンできるようになりました。この機能のために構文を拡張しています。新しいドリルダウンの構文では
--drilldown[LABEL1].keys COLUMN1,COLUMN2
をキーの指定に使います。output_columnsの場合は--drilldown[LABEL1].output_columns _value.COLUMN1,_value.COLUMN2,_nsubrecs
です。以前のバージョンでは、複数のキーによるドリルダウンを実現するにはクライアントアプリケーション側でそのような機能を実装するしかありませんでした。ドリルダウンでグループ化されたレコードのキーを参照するには、_key[N]
を使います。インデックスなしでも
'参照型のカラム @ "query"'
で検索できるようになりました。[実験的] range_filter コマンドを追加しました。たいていの場合、特定の範囲のレコードを取得するなら select コマンドよりも速いです。これはマッチしたレコード数を返さないので、そのためのレコードの走査が不要なためです。ただし、ドリルダウンをサポートしていないなどの制限があります。
range_filter
は特定の範囲の最初のN
レコードを必要とするランキングなどの用途に向いています。[windows] Windows上でも
groonga-httpd
が使えるようになりました。ドリルダウンでベクター型のカラムをサポートしました。
[deb] デフォルトのHTTPサーバーパッケージを
groonga-httpd
にしました。groonga-server-http
は非推奨です。ただし、 groongaコマンド のHTTPサーバー機能自体はまだ使えます。もし従来のような簡易HTTPサーバーを使いたいなら、適宜引数を groongaコマンド へとコマンドライン経由で渡します。WindowsのCI環境であるAppVeyor向けの設定ファイルを追加しました。 [groonga-dev,02970,02981] [畑ケさんがパッチ提供]
修正¶
[doc] table_create の重複した実行例を修正しました。[GitHub groonga.org#14] [横山さんが報告]
ネストしたインデックスで
X._key
に対する全文検索をしたときに空の結果を返す不具合を修正しました。BSD で仕様が厳密になった
mkostemp(3)
に対して渡しているフラグを修正しました。 [GitHub#240] [Kuriyamaさんがパッチ提供]select コマンドが 誤った値の型(table)をインデックスカラムの値の型として返す不具合を修正しました。
UInt32
を返すように修正しています。この変更はレスポンスのヘッダー部分にのみ影響します。これにより検索結果は変りません。Time型と文字列型の比較(
<
,<=
,>
,>=
,!=
)が誤った結果を返す不具合を修正しました。"x*"
といった一文字の前方一致検索が行えない不具合を修正しました。[GitHub#242] [村上さんがパッチ提供]ShortText
型の値に対するドリルダウンを--filter
と一緒に使ったときにメモリリークしていたのを修正しました。"DDL:set_token_filters"
のログに","
が抜けていたのを修正しました。 [村上さんが報告]
感謝¶
篠田さん
横山さん
村上さん
Jun Kuriyamaさん
畑ヶさん
4.0.7リリース - 2014/10/29¶
改良¶
[windows] Windows上でもmrubyを組み込んで使えるようにしました。
プラグインAPIとしてトークンフィルタを追加しました。
TokenFilterStopWord プラグインを追加しました。このプラグインは
is_stop_word
カラムの値がtrueのものをストップワードとして扱います。[doc] クライアントライブラリーへのリンク先を紹介する クライアント セクションを追加しました。 [GitHub#210] [村上さんがパッチ提供]
[doc] ドキュメント構成を見直しました。 サジェスト や 位置情報検索 は リファレンスマニュアル 以下にまとめました。 [GitHub#206] [村上さんがパッチ提供]
[deb] ストップワードトークンフィルタープラグインを追加しました。 [GitHub#216] [畑ヶさんがパッチ提供]
[deb] 同梱しているファイルの著作権表記を debian/copyright でより明確にしました。
LZOによる圧縮サポートをやめました。
LZ4による圧縮をサポートしました。 [GitHub#223] [村上さんがパッチ提供]
in_values を追加しました。
==
やOR
を繋げて書いていたクエリ (((COLUMN == "a") OR (COLUMN == "b") OR (COLUMN == "c"))
) のかわりにこれを使うのがパフォーマンスの観点からお勧めです。[load]
TABLE_NO_KEY
を使ったテーブルで既存のレコードを_id
を指定して更新できるようになりました。TokenFilterStem プラグインを追加しました。ステミングの機能を追加します。この機能をトークンフィルタで使うには、libstemmer ライブラリーが必要です。
[doc] トークンフィルター のドキュメントを追加しました。 [GitHub#227] [村上さんがパッチ提供]
修正¶
[doc] Rangubaプロジェクトへのリンクを修正しました。 [GitHub#212] [村上さんがパッチ提供]
[httpd] バンドルしているnginxのバージョンを1.7.6に更新しました。 [GitHub#208] [畑ヶさんがパッチ提供]
[power8] ビルドに失敗していたのを修正しました。詳細は http://lists.askmonty.org/pipermail/commits/2014-October/006752.html を参照してください。 [Sergey Vojtovichさんがパッチ提供]
char
がunsigned char
としてビルドされているとURLエンコーディングに失敗する不具合を修正しました。 [GitHub#217]TABLE_DAT_KEY
テーブルを select したときに検索結果が空になる不具合を修正しました。 [GitHub#220]ベクターカラムを表示するときにメモリリークするのを修正しました。エラーが発生したときの詳細表示で発生します。
Zlibカラム圧縮でメモリリークする問題を修正しました。 [GitHub#221] [村上さんがパッチ提供]
--filter
でInt8
カラムの値に100以下を指定したときに意図しない true を返すことがある不具合を修正しました。この問題により意図しないレコードが検索結果含まれていました。ベクターカラムに対する四則演算はエラーになるようにしました。
ビッグエンディアンの環境では、
!XXX
が逆の結果を返すのを修正しました。重みつきベクターカラムの内容を出力するさいメモリリークするのを修正しました。
[dump] dump でのトークンフィルターと
TABLE_NO_KEY
関連のエラーを修正しました。 [GitHub#215] [村上さんがパッチ提供]
感謝¶
村上さん
畑ヶさん
Sergey Vojtovichさん
4.0.6リリース - 2014/09/29¶
改良¶
debian/copyrightを機械可読な形式でルールに沿うように更新しました。[やまねさんが報告]
[deb][rpm] HTTP経由でnginxをコントロールするのではなくシグナルを使うようにしました。このほうがnginxらしいinit scriptです。
[doc] [ 実行ファイル ] の英語ドキュメントを更新しました。 [GitHub#196] [横山さんがパッチ提供]
[OS X] HomebrewでSphinxに関するエラーメッセージへの対処方法を追加しました。 [GitHub#198] [cosmo0920さんがパッチ提供]
[mruby] mrubyによるクエリオプティマイザが範囲検索で実用的になりました。例えば、mrubyを使うことによるオーバーヘッドは、次のようなクエリで無視できます。"between(X, 0, 'exclude', 100, 'include')" - "X > 0 && X <= 100"。
[doc] バグレポートの報告先として GitHub を推奨することにしました。これまではRedmineで、アカウントは管理者による承認が必要でした。これからは、GitHubで気軽に問題を報告してください。 [GitHub#202] [cosmo0920さんがパッチ提供]
[doc] C APIのドキュメントを翻訳しました。 [GitHub#203] [野首さんがパッチ提供]
'*S10"..."'
というシンタックスで類似度の閾値をカスタマイズできるようにしました。column_create にソースカラムの検証機能を追加しました。もし、ソースカラムが存在しない場合は column_create は
false
を返し、カラムは作られません。[deb] Debian jessieとsidのサポートをやめました。
修正¶
類似文書検索で、トークンを選択する際にIDF (逆文書出現頻度) を使っていない不具合を修正しました。以前のバージョンでは、IDFではなく、トークンのIDを使ってしまっていました。[groonga-dev,02731] [groonga-dev,02754] [三谷さん、warp kawadaさんが報告]
レコードを削除する際にクラッシュする問題を修正しました。この問題は、削除を行うクエリに
_key
が含まれており、その_key
を参照するインデックスカラムが2つ以上ある場合に発生します。未使用変数 'e' に対するコンパイラの警告を修正しました。 [GitHub#197] [cosmo0920さんがパッチ提供]
[fedora][httpd] ログディレクトリがないとサービス開始時に失敗するのを修正しました。
[mruby]
--disable-mruby
でビルドしたときのエラーを修正しました。 [GitHub#200] [cosmo0920さんがパッチ提供]MariaDBにMroongaをバンドルしたパッケージをビルドする際の警告(CMP0014)を修正しました。 [GitHub#201] [cosmo0920さんがパッチ提供]
"*" が空文字列に対する前方一致検索として扱われてしまう不具合を修正しました。 [groonga-dev,02796] [かずひこさんが報告]
[httpd] バンドルしているnginxのバージョンを1.7.5に更新しました。セキュリティーに関する修正(CVE-2014-3616)を含んでいます。
感謝¶
やまねひできさん
横山さん
cosmo0920さん
野首さん
三谷さん
warp kawadaさん
かずひこさん
4.0.5リリース - 2014/08/29¶
改良¶
Ubuntu 13.10 (Saucy Salamander)のサポートをやめました。
重みつきベクターカラムの表示をXML出力のときにもサポートしました。
[ between ] 範囲外のキーも指定できるようにしました。 [GitHub#183] [村上さんがパッチ提供]
[mruby] バンドルしている正規表現の実装をOnigmoに変更しました。
タグ出力のために highlight_full と highlight_html を追加しました。 [GitHub#185] [村上さんがパッチ提供]
[doc] 古くなっていた functions/commands リファレンスを更新しました。 [GitHub#188] [GitHub#189] [村上さんがパッチ提供]
[benchmark] 平均と中央値をベンチマーク結果に含めるようにしました。
プラグイン開発者向けに
grn_selector_func()
とgrn_proc_set_selector()
を公開しました。 [GitHub#190] [村上さんがパッチ提供][ tokenize ] "mode" オプションを追加して、振舞いを変更できるようにしました。
GET
あるいはADD
を指定できます。 [GitHub#191] [GitHub#192] [村上さんがパッチ提供]近傍検索で、'*N"A Z"' という構文をサポートしました。
トークンをスキップしたり、トークンだけでなくその位置もスキップするかどうかをカスタマイズできるようにしました。この機能はトークナイザープラグインを開発するときに有用です。 [GitHub#193] [村上さんがパッチ提供]
[doc] GitHubのIssuesによるバグレポートで日本語も受けつけるようにしました。 [6elzさんが報告] [groonga-dev,02651]
[doc] チュートリアルの英語版を更新しました。[GitHub#194] [cosmo0920さんがパッチ提供]
修正¶
[php]
grn_ctx_recv()
を呼び出したときのメモリリークを修正しました。[GitHub#184] [@do-akiさんがパッチ提供][php]
grn_ctx_close()
を呼んだときにメモリを二重に解放しないようにしました。[GitHub#184] [@do-akiさんがパッチ提供]ツリー外でのビルドを再度サポートしました。
[httpd] バンドルしているnginxのバージョンを1.7.4に更新しました。セキュリティーに関する修正を含んでいます。
インデックス更新の際に無限ループが発生することがある問題を修正しました。[groonga-dev,02673] [皆川さんが報告]
静的なインデックス構築方法 を使ったときに、トークンを含むドキュメント数(document frequency)の値が不正な値になっている問題を修正しました。 [groonga-dev,02691] [村上さんが報告]
感謝¶
@do-akiさん
村上さん
6elzさん
皆川さん
cosmo0920さん
4.0.4リリース - 2014/07/29¶
改良¶
[httpd] バンドルしているnginxのバージョンを1.7.3に更新しました。
重みつきベクターカラムを正しく扱えるようにしました。
[ groonga-benchmark ] HTTPに関する説明を追加しました。
[ チュートリアル ] 英語のドキュメントを更新しました。
[example] Ruby 1.9以降でedict2grn.rbが動作するようにしました。
[http][admin] 管理画面で英語を標準にしました。
修正¶
レスポンスでシンタックスエラーの発生個所を正しく表示できるようにしました。
[httpd] Clangでビルドエラーとなる問題を修正しました。 [GitHub clear-code/rurema-search#11] [nikuさんが報告]
感謝¶
nikuさん
4.0.3リリース - 2014/06/29¶
改良¶
[実験的][ groonga HTTPサーバー ] POSTをサポート。
[windows] libwinpthread-1.dllをバンドル。新しいlibgcc_s_sjlj-1.dllがlibwinpthread-1.dllに依存しているため。 [groonga-dev,02398] [横山さんが報告]
[ groongaコマンド ] GQTPのデフォルトポート番号を10043に変更。サーバーパッケージではデフォルトで10043を使っているため。 [GitHub#172] [村上さんがパッチ提供]
[ normalize ] 引数チェックを強化。 [groonga-dev,02409][GitHub:#174] [GMOメディア株式会社さんが報告][村上さんがパッチ提供]
[ tokenize ] 引数チェックを強化。
[ groonga HTTPサーバー ]
Expect: 100-Continue
を使うリクエストをサポート。grn_proc_get_type()
を公開。[ groonga-suggest-learner ]
--log-path
オプションと--log-level
オプションを追加。GRN_CTX_USE_QL
を非推奨にした。GRN_CTX_BATCH_MODE
を非推奨にした。grn_text_printf()
を追加。grn_text_vprintf()
を追加。それぞれのクエリーログのサイズ制限を撤廃。
grn_plugin_expr_var_init()
を追加。 [GitHub#175][村上さんがパッチ提供]grn_plugin_command_create()
を追加。 [GitHub#175][村上さんがパッチ提供][GitHub#176] 重み付きの参照ベクターカラムをサポート。
[plugin] 内部APIではなく公開APIを使うように変更。 [GitHub#177][GitHub#178] [村上さんがパッチ提供]
[doc][plugin] プラグイン用のAPIを追加。 [GitHub#179] [村上さんがパッチ提供]
[windows] Visual C++ 2010を再サポート。 [groonga-dev,02454] [cosmo0920さんが報告]。
修正¶
感謝¶
横山さん
村上さん
GMOメディア株式会社さん
cosmo0920さん
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を使うようにしました。詳細は 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さん
村上さん
山本良二さん
The old releases¶
- 3.1.2リリース - 2014/01/29
- 3.1.1リリース - 2013/12/29
- 3.1.0リリース - 2013/11/29
- 3.0.9リリース - 2013/10/29
- 3.0.8リリース - 2013/09/29
- 3.0.7リリース - 2013/08/29
- 3.0.6リリース - 2013/07/29
- 3.0.5リリース - 2013/06/29
- 3.0.4リリース - 2013/05/29
- 3.0.3リリース - 2013/04/29
- 3.0.2リリース - 2013/03/29
- 3.0.1リリース - 2013/02/28
- 3.0.0リリース - 2013/02/09
- 2.1.2リリース - 2013/01/29
- 2.1.1リリース - 2012/12/29
- 2.1.0リリース - 2012/12/29
- 2.0.9リリース - 2012/11/29
- 2.0.8リリース - 2012/10/29
- 2.0.7リリース - 2012/09/29
- 2.0.6リリース - 2012/08/29
- 2.0.5リリース - 2012/07/29
- 2.0.4リリース - 2012/06/29
- 2.0.3リリース - 2012/05/29
- 2.0.2リリース - 2012/04/29
- 2.0.1リリース - 2012/03/29
- 2.0.0リリース - 2012/02/29
- 1.3.0リリース - 2012/01/29
- 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.0.xのお知らせ
- バージョン0.xのお知らせ
- News in Senna period