お知らせ¶
7.0.6リリース - 2017-08-29¶
改良¶
前方一致検索を複数インデックスを指定してできるようになりました。 (例
--query "Foo*" --match_columns "TITLE_INDEX_COLUMN||BODY_INDEX_COLUMN"
)[window_count]
window_count
関数を追加しました。検索した結果にカウントした値を追加するのに使います。検索結果をもとに分析したり、カウント結果をもとにフィルタしたりすると便利です。以下のAPIを公開しました。
grn_obj_get_disk_usage()
を追加。GRN_EXPR_QUERY_NO_SYNTAX_ERROR
を追加。grn_expr_syntax_expand_query_by_table()
を追加。grn_table_find_reference_object()
を追加。
[object_inspect] 指定したオブジェクトのディスク使用量を表示できるようになりました。
クエリーをパースする際にフォールバックする機能をサポートしました。
QUERY_NO_SYNTAX_ERROR
フラグがquery_flags
に指定されていると有効になります。(標準では無効です) このフラグが設定されていると、シンタックスエラーが発生しなくなります。例えば、"A +" というクエリーは自動的にエスケープされて "A +" という扱いになります。この振る舞いはアプリケーションがユーザーの入力をそのまま検索語句として使い、シンタックスエラーやログに記録されないようにしたい場合に便利です。クエリー内の語のスコアを調整できるようになりました。">", "<" と "~"がサポートされています。例えば ">Groonga" は "Groonga" のスコアをインクリメントします。"<Groonga" は "Groonga" のスコアをデクリメントします。"~Groonga" は検索結果についてマッチしたドキュメントのスコアをデクリメントします。"~" は検索結果そのものには影響しません。
テーブルを削除するときのパフォーマンスを改善しました。
thread_limit=1
する必要はありません。参照されているテーブルが存在するかチェックする処理をオブジェクトを開かなくてもできるようにしました。その結果としてパフォーマンスが改善しました。[httpd] バンドルしているnginxのバージョンを1.13.4に更新しました。
修正¶
感謝¶
- murata satoshi
- ryo-pinus
7.0.5リリース - 2017-07-29¶
改良¶
[httpd] バンドルしているnginxのバージョンを1.13.3に更新しました。セキュリティーに関する修正(CVE-2017-7529)を含んでいます。
[load] UInt64の最大値をロードできるようにしました。以前のバージョンでは意図せず0に変換されてしまっていました。
以下のAPIを公開しました。
grn_window_get_size()
[GitHub#725] [村上さんがパッチ提供]
[math_abs] 絶対値を計算するための
math_abs()
関数を追加しました。 [GitHub#721]grn_default_logger_set_path()
とgrn_default_query_logger_set_path()
をスレッドセーフにしました。[Windows] バンドルしているpcreを8.41に更新しました。
[normalize] エラー時に冗長な空文字列が出力されないようにしました。
[functions/time] 0除算が発生したときにエラーメッセージを出力するようにしました。 [GitHub#733] [村上さんがパッチ提供]
[windows]
ERROR_NO_SYSTEM_RESOURCES
エラーをGRN_RESOURCE_TEMPORARILY_UNAVAILABLE
にマッピングするようにしました。以前はrc=-1
をエラーコードとして返していました。ただし実際にどんな問題がおきたのかこれではわかりにくいので、 今回の修正ではrc=-12
を返すようにしています。[functions/min][functions/max] ベクターカラムをサポートしました。これでカラムがスカラーなのかベクターなのか気にせず使えるようになりました。 [GitHub#735] [村上さんがパッチ提供]
[dump]
--sort_hash_table
オプションをサポートしました。ハッシュテーブルの_key
でのソートには--sort_hash_table yes
を指定します。[between] インデックスカラムを指定できるようになりました。 [GitHub#740] [村上さんがパッチ提供]
[load] Apache Arrow 0.5.0 以降をサポート。
[エラーメッセージの解析方法] エラーメッセージの解析方法のドキュメントを追加しました。
[Debian GNU/Linux] ソースからビルドするときに必要なパッケージのリストを更新しました。
[Ubuntu] Ubuntu 16.10(Yakkety Yak)のサポートをやめました。2017年7月20日でサポートが切れた(EOLになった)ためです。
修正¶
テキスト型(
ShortText
など)のベクターカラムに対するインデックスを正しく構築できるようにしました。この修正でインデックス更新後に全文検索でマッチしない問題が解決します。 [GitHub#494][thread_limit]
thread_limit?max=1
というリクエストが同時にきたときにデッドロックが発生する問題を修正しました。[groonga-httpd] デフォルトのPIDのパスと再起動時に想定しているPIDのパスがあっていない問題を修正しました。そのせいで groonga-httpd の再起動に失敗していました。 [GitHub#743] [sozakiさんが報告]
感謝¶
村上さん
7.0.4リリース - 2017-06-29¶
改良¶
物理的なファイルの作成/削除のログを障害の切り分けのために記録するようにしました。 [GitHub#700,#701]
[in_records] 固定長カラムの検索パフォーマンスを改善しました。速度が50%程度改善する可能性があります。
[grndb]
--log-path
オプションを追加しました。[grndb]
--log-level
オプションを追加しました。以下のAPIを公開しました。
grn_operator_to_exec_func()
grn_obj_is_corrupt()
"固定長カラム 演算子 定数" というようなクエリのパフォーマンスを改善しました。対応している演算子は
==
,!=
,<
,>
,<=
と>=
です。"カラム 演算子 値 && カラム 演算子 値 && ..." というようなクエリのパフォーマンスを改善しました。
[grndb]
grndb check
で壊れたオブジェクトの検出をサポートしました。[io_flush]
--only_opened
オプションをサポートしました。開いているデータベースオブジェクトのみをフラッシュすることができます。[grndb] 参照先のない "inspect" オブジェクトの検出と削除をサポートしました。この状態はコマンド名が
inspect
からobject_inspect
に変更されたことによって発生していました。
修正¶
[rpm][centos] カスタマイズ版のビルドで意図しないマクロ展開が発生する問題を修正しました。この不具合はGroongaをSRPMからビルドする際にspecファイルの
additional_configure_options
パラメータを使ってリビルドするときのみ発生していました。grn_table_setoperation()
のNULLチェックを追加しました。インデックスが壊れている際に、クラッシュする可能性がありました。 [GitHub#699]
感謝¶
7.0.3リリース - 2017-05-29¶
改良¶
[select] インデックス名を指定した全文検索 のドキュメントを追加しました。
[インデックス] どのレコードに対するポスティングリストが長すぎるのかわかるように、警告メッセージをログに出すようにしました。
[cmake] 静的ライブラリとしてビルドする際に、LZ4をリンクできるようにしました。 [Sergei Golubchikさんがパッチを提供]
[delete] キャンセルできるようにしました。
[httpd] バンドルしているnginxのバージョンを1.13.0に更新しました。
以下のAPIを公開しました。
grn_plugin_proc_get_caller()
を追加。
インデックスカラムに関連した関数とセレクタを追加しました。
追加されたセレクタ:
index_column_df_ratio_between()
追加された関数:
index_column_df_ratio()
修正¶
[delete] エラーが適切にクリアされていない不具合を修正しました。そのせいで、後続の削除処理に影響し意図しない振る舞いをしていました。
[windows] ファイルを
O_CREAT
フラグ付きで開くときに、IOのバージョンが正しく検出されない不具合を修正しました。[vector_slice] (型のサイズが)4バイトでないベクターカラムをsliceできない不具合を修正しました。 [GitHub#695] [村上さんがパッチ提供]
(型のサイズが)4バイトでないベクターカラムでベクターの要素をインデックスで指定するとシーケンシャルサーチでマッチしない不具合を修正しました。 [GitHub#696] [村上さんがパッチ提供]
[logical_select]
min
に月の最終日を指定すると "argument out of range" が発生する不具合を修正しました。
感謝¶
Sergei Golubchikさん
村上さん
7.0.2リリース - 2017-04-29¶
改良¶
[logical_select] drilldowns[${LABEL}].columns[${NAME}].window.sort_keys と drilldowns[${LABEL}].columns[${NAME}].window.group_keys で複数のキーを指定できるようになりました。
[Windows] バンドルしているLZ4を1.7.5に更新しました。
[cache] 永続化キャッシュをサポートしました。
[log_level] 英語のドキュメントを更新しました。
以下のAPIを公開しました。
grn_set_default_cache_base_path()
grn_get_default_cache_base_path()
grn_persistent_cache_open()
grn_cache_default_open()
[
groonga --cache-base-path
] 永続キャッシュを使うための新しいオプションを追加しました。[groonga-httpd] [groonga_cache_base_path] 永続キャッシュを使うための新しい設定を追加しました。
[Windows] バンドルしているmsgpackを2.1.1に更新しました。
[object_inspect] カラム情報を表示するだけでなく、インデックスカラムの統計情報も表示できるようにしました。
正規表現の「
.*
」というパターンでインデックスを使って検索できるようになりました。 この機能はデフォルトで有効です。環境変数にGRN_SCAN_INFO_REGEXP_DOT_ASTERISK_ENABLE=no
を設定すると無効化できます。[in_records] 既存のテーブルを条件のパターンを指定するのに使うことのできる関数を追加しました。
[Ubuntu] EOLのため、Ubuntu 12.04のサポートをやめました。
修正¶
[logical_select] 異なるキャッシュが使われてしまう不具合を修正しました。この問題は動的カラムを使っているときに発生していました。
[logical_select] 動的カラムが作成されない不具合を修正しました。レコードにマッチしない場合に発生していました。
[reindex] reindexコマンドの実行によりデータが失われてしまう不具合を修正しました。
[httpd] 別のユーザーでワーカーを動かしている時、 quit と shutdown のレスポンスが壊れている問題を修正しました。 [GitHub ranguba/groonga-client#12]
7.0.1リリース - 2017-03-29¶
改良¶
以下のAPIを公開しました。
- grn_ii_cursor_next_pos()
- grn_table_apply_expr()
- grn_obj_is_data_column()
- grn_obj_is_expr()
- grn_obj_is_scalar_column()
[column_copy] 参照型のベクタのダンプをサポートしました。
[load]
array<object>
スタイルの重み付きベクターカラムのloadをサポートしました。array<object>
の例:[{"key1": weight1}, {"key2": weight2}]
インデックスを使った
!(XXX OPERATOR VALUE)
の検索をサポートしました。演算子として>
だけでなく、>=
、<
、<=
、==
や!=
も使えます。インデックスを使って
!(column == CONSTANT)
を検索できるようになりました。例えば!(column == 29)
などです。!
の最適化を以下のパターンでサポートしました。!(column @ "X") && (column @ "Y")
(column @ "Y") && !(column @ "X")
(column @ "Y") &! !(column @ "X")
XXX || !(column @ "xxx")
をインデックスを使って検索できるようになりました。[dump]
'{"x": 1, "y": 2}'
というスタイルを参照されていない重み付きベクターカラムで使うようにしました。この変更は古いGroongaには影響しません。もともとサポートされているからです。[実験的]
GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE
環境変数をサポートしました。この変数はクエリの最適化を予想されるヒット件数に応じて行うかどうかを切り替えるのに使用します。この機能はデフォルトでは無効です。有効にするにはGRN_ORDER_BY_ESTIMATED_SIZE_ENABLE=yes
を指定します。[select]
columns
やdrilldown
の評価結果をクエリログに追加するようにしました。[select]
drilldown
のクエリログのフォーマットを変更しました。これは非互換な変更ですが、クエリログを変換するようなプログラムを独自に開発しているユーザー以外には影響ありません。[table_remove] 一時的なメモリ使用量を削減しました。スレッドの最大数が0のときに有効になります。
[select]
columns[LABEL](N)
がクエリログのフォーマットとして使われます。以前はcolumns(N)[LABEL]
でした。[クエリ拡張] ベクターカラムを使った推奨例に更新しました。[ぐるなびさんが報告]
ロック中にリクエストがキャンセルされたことを検出できるようにしました。これは
request_cancel
がロック中に意図せず無視されないようにします。[logical_select]
initial
およびfiltered
動的カラムをサポートしました。使用例は--columns[LABEL].stage initial
や--columns[LABEL].stage filtered
です。[logical_select]
match_columns
やquery
、drilldown_filter
オプションをサポートしました。[highlight_html] 類似文書検索をサポートしました。
[logical_select]
initial
およびfiltered
動的カラムをサポートしました。使用例は--columns[LABEL].stage initial
や--columns[LABEL].stage filtered
です。[logical_select] 動的カラムでウィンドウ関数をサポートしました。
[select] 動的カラムに関するドキュメントを追加しました。
[ウィンドウ関数] ウィンドウ関数のセクションをドキュメントに追加しました。
[CentOS] EOLのため、CentOS 5のサポートをやめました。
[httpd] バンドルしているnginxのバージョンを1.11.12に更新しました。
ANDでのマッチ最適化を環境変数で無効化できるようにしました。この機能は
GRN_TABLE_SELECT_AND_MIN_SKIP_ENABLE=no
を設定することで無効化できます。デフォルトでは有効になっています。[vector_new] 新規ベクターを作成するための関数を追加しました。
[select]
drilldown_filter
のドキュメントを追加しました。
修正¶
[lock_clear] テンポラリデータベースに対して実行するとクラッシュする不具合を修正しました。
自然言語に対する動的インデックス更新でインデックスサイズが肥大化する問題を修正しました。Groonga 6.1.4から発生していました。
[select] "A && B.C @ X" というクエリでマッチすべきレコードを返さないことがある不具合を修正しました。
grn_io_flush()
とgrn_io_expire()
がコンフリクトする問題を修正しました。この修正がないと、io_flush
とload
が同時に特定のタイミングで実行されるとクラッシュする不具合がありました。[logical_table_remove] 最大スレッド数が1のときにクラッシュする不具合を修正しました。
感謝¶
株式会社ぐるなびさん
7.0.0リリース - 2017-02-09¶
改良¶
[in_values] 参照型ベクターカラムのシーケンシャルサーチに対応しました。 [GitHub#629] [村上さんがパッチ提供]
[select] 誤った
drilldown[LABEL].sort_keys
が指定されたとき、無視するのではなく、エラーを報告するようにしました。[select] DBのメタデータを不必要に更新しないようにしました。
select
コマンドを使っているだけなのにDBにロックがかかったままになってしまうのを防ぎます。[lock_clear]
lock_clear
でDBのメタデータに対するロックも削除できるようにしました。[CentOS] GroongaをAmazon LinuxでもインストールできるようにEPELをデフォルトで有効にするようにしました。
[query]
default_mode
オプションで "@X" スタイルのエイリアスが使えるようになりました。[query] 動作モードのリストに関するドキュメントを更新しました。動作モードの既定値は
MATCH
("@") で全文検索を実行します。[rpm][centos] CentOS 7で groonga-token-filter-stem パッケージを提供するようにしました。 ステミングに対応するための
TokenFilterStem
トークンフィルターを提供します。 [GitHub#633] [Tim Bellefleurさんが報告][window_record_number]
record_number
が非推奨になりました。代わりにwindow_record_number
を使ってください。record_number
は互換性のためだけに残っています。[window_sum]
window_sum
ウィンドウ関数を追加しました。PostgreSQLのsum()と同様のウィンドウ関数を提供します。TABLE_DAT_KEY
テーブルをインメモリで使ったときに静的インデックス構築をできるようにしました。 [GitHub#623] [村上さんが報告]バンドルしている鬼雲を6.1.1へと更新しました。
columns[LABEL].window.group_keys
をサポートしました。ウィンドウ関数をグループごとに提供することができます。[load] 誤ったキーが指定されていたときにエラーを報告するようにしました。キーの型が異なっている場合でも気付けるようになります。
[load]
--output_errors yes
オプションをサポートしました。"yes"を指定すると、どのレコードのloadに失敗したのかエラーを取得できるようになります。この機能を使う場合には、コマンドバージョン3を指定します。[load] キーのキャストに失敗したときのエラーメッセージをわかりやすくしました。以前は単に "cast failed" と表示していましたが、テーブルのキーの型とキャスト対象となるキーの型もメッセージに含まれるようになりました。
[httpd] バンドルしているnginxのバージョンを1.11.9に更新しました。
修正¶
存在しないソートキーを
drilldowns[LABEL]
やslices[LABEL]
に指定するとJSONパースエラーとなる不具合を修正しました。 [GitHub#627] [村上さんがパッチ提供]存在しないグループのサブレコードにアクセスしようとするとクラッシュする不具合を修正しました。例えば、
drilldowns[LABEL].sort_keys _sum
をcalc_types
の指定なしに使っていた場合に問題が発生していました。 [GitHub#625] [村上さんがパッチ提供]tokenizerでエラーが発生するとクラッシュする不具合を修正しました。tokenizer と token filterを登録していて、tokenizer にエラーがあると発生していました。
[window_record_number] ウィンドウ関数の引数が正しく渡されていない不具合を修正しました。 [GitHub#634] [村上さんがパッチ提供]
感謝¶
村上さん
aomi-nさん
古いリリース¶
- News - 6.x
- 6.1.5リリース - 2017-01-23
- 6.1.4リリース - 2017-01-18
- 6.1.3リリース - 2017-01-06
- 6.1.2リリース - 2016-12-31
- 6.1.1リリース - 2016-11-29
- 6.1.0リリース - 2016-10-29
- 6.0.9リリース - 2016-09-29
- 6.0.8リリース - 2016-08-29
- 6.0.7リリース - 2016-07-29
- 6.0.5リリース - 2016-06-29
- 6.0.4リリース - 2016-06-06
- 6.0.3リリース - 2016-05-29
- 6.0.2リリース - 2016-04-29
- 6.0.1リリース - 2016-03-29
- 6.0.0リリース - 2016-02-29
- News - 5.x
- News - 4.x
- News - 3.x
- News - 2.x
- News - 1.3.x
- News - 1.2.x
- バージョン1.1.xのお知らせ
- バージョン1.0.xのお知らせ
- バージョン0.xのお知らせ
- News in Senna period