こんばんわ。堀本です。 Groonga 9.0.3をリリースしました! http://groonga.org/ja/blog/2019/05/29/groonga-9.0.3.html 変更点一覧: http://groonga.org/ja/docs/news.html#release-9-0-3 主な変更点は以下の通りです。 * [select] クエリーログを追加しました。 * [logical_select] クエリーログを追加しました。 * [logical_select] ``limit`` オプションを使った際のソートのパフォーマ ンスを少し改善しました。 * [index_column_diff] パフォーマンスを改善しました。 * [Normalizers] Unicode 12.1 の Unicode NFKC (Normalization Form Compatibility Composition) をベースにしたノーマライザー ``NormalizerNFKC121`` を追加しました。 * [TokenFilters] Unicode 12.1のUnicode NFKC (Normalization Form Compatibility Composition)をベースにしたトークンフィルター ``TokenFilterNFKC121`` を追加しました。 * [grndb] 新しいオプション ``--log-flags`` を追加しました。 * [snippet_html] 検索にマッチしなかったときの戻り値を変更する新しいオ プションを追加しました。 * [plugin_unregister] Windowsのフルパスに対応しました。 * 複数行に渡るログをサポートしました。 * インデックスを使った検索の際、Groongaのログにキーを出力するようにし ました。 * [mutch_columnsのドキュメント] インデックスの重みを追加しました。 * [logical_range_filterのドキュメント] ``order`` パラメータの説明を追 加しました。 * [object_inspectのドキュメント] 新しい統計 ``INDEX_COLUMN_VALUE_STATISTICS_NEXT_PHYSICAL_SEGMENT_ID`` と ``INDEX_COLUMN_VALUE_STATISTICS_N_PHYSICAL_SEGMENTS`` の説明を追加し ました。 * Ubuntu 14.04 のサポートをやめました。 * [index_column_diff] ``remains`` を多く報告するバグを修正しました。 * ``--without-onigmo`` オプションを使った際にビルドエラーになるバグを 修正しました。 * \"CVE: 2019-11675\"の脆弱性を修正しました。 ### [select] クエリーログを追加しました。 ``select`` コマンドが以下のタイミングでログを出力するようになります。 * ドリルダウンによるソート後 * ドリルダウンによるフィルター後 この機能によって、このコマンドがどこまで完了したかを見ることができます。 ### [logical_select] クエリーログを追加しました。 ``logical_select`` コマンドが、以下のタイミングでログを出力するように なります。 * 動的カラム作成後 * ドリルダウンによるグループ化後 * ドリルダウンによるソート後 * ドリルダウンによるフィルター後 * ``logical_select`` によるフィルター後 この機能によって、このコマンドがどこまで完了したかを見ることができます。 ### [index_column_diff] パフォーマンスを改善しました。 このコマンドの実行速度を大幅に短くしました。 データにもよりますが、以前の数十倍から数百倍の速度で実行するようになり、 メモリの使用量も少なくなっています。 この改善によって、このコマンドは十分に実用的になりました。 ### [grndb] 新しいオプション ``--log-flags`` を追加しました。 groonga実行ファイルと同様、ログに出力する項目を指定できます。 ### [snippet_html] 検索にマッチしなかったときの戻り値を変更する新しい オプションを追加しました。 例えば、以下のように検索にマッチしなかったときの戻り値を"[]"に指定でき ます。 ``` table_create Documents TABLE_HASH_KEY ShortText [[0,0.0,0.0],true] column_create Documents content COLUMN_SCALAR Text [[0,0.0,0.0],true] table_create Terms TABLE_PAT_KEY|KEY_NORMALIZE ShortText --default_tokenizer TokenBigram [[0,0.0,0.0],true] column_create Terms document_index COLUMN_INDEX|WITH_POSITION Documents content [[0,0.0,0.0],true] load --table Documents [ ["_key", "content"], ["Groonga", "Groonga can be used with MySQL."] ] [[0,0.0,0.0],1] select Documents --match_columns content --query 'MySQL' --output_columns '_key, snippet_html(_key, {"default": []})' [ [ 0, 0.0, 0.0 ], [ [ [ 1 ], [ [ "_key", "ShortText" ], [ "snippet_html", null ] ], [ "Groonga", [ ] ] ] ] ] ```