HorimotoYasuhiro
null+****@clear*****
Thu Dec 28 00:02:32 JST 2017
HorimotoYasuhiro 2017-12-28 00:02:32 +0900 (Thu, 28 Dec 2017) New Revision: 0b5c561f1699557ac5fe8f6e35e54c8942dcec7a https://github.com/groonga/groonga.org/commit/0b5c561f1699557ac5fe8f6e35e54c8942dcec7a Merged 7061fd8: Merge pull request #41 from komainu8/add_7.1.0_entry_ja Message: blog ja: add 7.1.0 entry Added files: ja/_posts/2017-12-29-groonga-7.1.0.md Added: ja/_posts/2017-12-29-groonga-7.1.0.md (+205 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2017-12-29-groonga-7.1.0.md 2017-12-28 00:02:32 +0900 (0ae60f4d) @@ -0,0 +1,205 @@ +--- +layout: post.ja +title: Groonga 7.1.0リリース +description: Groonga 7.1.0をリリースしました! +published: false +--- + +## Groonga 7.1.0リリース + +今日は肉の日ですね! + +[Groonga 7.1.0](/ja/docs/news.html#release-7.1.0)をリリースしました! + +それぞれの環境毎のインストール方法: [インストール](/ja/docs/install.html) + +### 変更内容 + +主な変更点は以下の通りです。 + + * [load](/ja/docs/reference/commands/load.html) のクエリーログのフォーマットを改良しました。 + + * [logical_count](/ja/docs/reference/commands/logical_count.html) のクエリーログのフォーマットを改良しました。 + + * [logical_select](/ja/docs/reference/commands/logical_select.html) のクエリーログのフォーマットを改良しました。 + + * [delete](/ja/docs/reference/commands/delete.html) のクエリーログのフォーマットを改良しました。 + + * ドリルダウンでベクター型のカラムをサポートしました。 + + * `grn_bulk_*()` APIにおいて、 `realloc()` が呼ばれる回数を削減しました。 + + * 関数 `index_column_source_records` を新規に追加しました。インデックスカラムのソースを取得することができます。 + +### [load](/ja/docs/reference/commands/load.html) のクエリーログのフォーマットを改良しました。 + +[load](/ja/docs/reference/commands/load.html)のクエリーログに以下の情報が表示されるようになります。 + + * ロードしたレコード数 + * ロードがエラーになったレコードとカラムの数 + * 総レコード数 + +具体的には、以下のように表示されます。 + +```text +#:000000000000000 load(3): [1][2][3] +#<000000000000000 rc=-22 +``` + +load直後の()の中の数字は、ロードしたレコード数、1番目の[]の中の数字は、ロードに失敗したレコード数、2番目の[]の中の数字はロードに失敗したカラム数、3番目の[]の中の数字は、総レコード数を表します。 + +### [logical_count](/ja/docs/reference/commands/logical_count.html) のクエリーログのフォーマットを改良しました + +[logical_count](/ja/docs/reference/commands/logical_count.html)のクエリーログに以下の情報が表示されるようになります。 + + * 検索にマッチしたレコード数 + +具体的には、以下のように表示されます。 + +```text +#:000000000000000 count(2) +#<000000000000000 rc=0 +``` + +count直後の()の中の数字が、検索にマッチしたレコード数を表します。 + +### [logical_select](/ja/docs/reference/commands/logical_select.html) のクエリーログのフォーマットを改良しました + +[logical_select](/ja/docs/reference/commands/logical_select.html) のクエリーログに以下の情報が表示されるようになります。 + + * 検索にマッチしたレコード数 + * ドリルダウンした数 + * ラベルつきのドリルダウンをした数 + +具体的には、以下のように表示されます。 + +```text +#:000000000000000 select(1)[Logs_20170315] +#:000000000000000 select(2)[Logs_20170316] +#:000000000000000 select(2)[Logs_20170317] +#:000000000000000 output(5) +#<000000000000000 rc=0 +``` + +select直後の()の中の数字は、実行されるクエリーによって、検索にマッチしたレコード数、ドリルダウン結果のレコード数、ラベル付きドリルダウンした結果のレコード数を表します。 +また、シャード毎に結果を表示するようになっています。 +上記例では、3つのシャードが存在するので、selectが3つ出力されています。 +末尾の[]は、検索したテーブル名が表示されます。 + +### [delete](/ja/docs/reference/commands/delete.html) のクエリーログのフォーマットを改良しました + +[delete](/ja/docs/reference/commands/delete.html) のクエリーログに以下の情報が表示されるようになります。 + + * 削除したレコード数と削除に失敗したレコード数 + * 削除後に残ったレコード数 + +具体的には、以下のように表示されます。 + +```text +#:000000000000000 delete(1): [0][2] +#<000000000000000 rc=0 +``` + +delete直後の()の中の数字は、削除した件数、1番目の[]の中の数字は、削除に失敗した件数、2番目の[]の中の数字は、deleteコマンドを実行した結果、残ったレコード数を表します。 + +### ドリルダウンでベクター型のカラムをサポートしました + +ベクター型のカラムに対して、ドリルダウンできるようになります。 + +以下のように `drilldown_calc_target` にベクターカラムを指定して、ベクターカラムの要素の中で +最小の値や最大の値、合計値、平均値等を出力できるようになっています。 + +```text +table_create Tags TABLE_PAT_KEY ShortText + +table_create Memos TABLE_HASH_KEY ShortText +column_create Memos tag COLUMN_SCALAR Tags +column_create Memos scores COLUMN_VECTOR Int64 + +load --table Memos +[ +{"_key": "Groonga1", "tag": "Groonga", "scores": [10, 29]}, +{"_key": "Groonga2", "tag": "Groonga", "scores": [20]}, +{"_key": "Groonga3", "tag": "Groonga", "scores": [60, 71]}, +{"_key": "Mroonga1", "tag": "Mroonga", "scores": [61, 62, 63]}, +{"_key": "Mroonga2", "tag": "Mroonga", "scores": [24, 20, 16]}, +{"_key": "Mroonga3", "tag": "Mroonga", "scores": [8, 5, 2]}, +{"_key": "Rroonga1", "tag": "Rroonga", "scores": [3]}, +{"_key": "Rroonga2", "tag": "Rroonga", "scores": [-9, 0, 9]}, +{"_key": "Rroonga3", "tag": "Rroonga", "scores": [0]} +] +``` + +上記のようなテーブルに対して、以下のクエリーを発行すると、tagにGroongaを持つレコード、tagにMroongaを持つレコード、tagにRroongaを持つレコードのscoresカラムの中から最小値、最大値、socresカラムの各要素を合計した値、scoresカラムの要素の平均値を計算し出力します。 + +```text +select Memos \ + --limit 0 \ + --drilldowns[tag].keys tag \ + --drilldowns[tag].calc_types 'MAX, MIN, SUM, AVG' \ + --drilldowns[tag].calc_target scores \ + --drilldowns[tag].output_columns _key,_max,_min,_sum,_avg +``` + +したがって、上記のクエリーの結果はそれぞれ以下のようになります。(説明に不要な部分は一部割愛して記載しています。) 左から`_Key`, `_max`、`_min`、`_sum`、`_avg`の値となります。 + +```text +["Groonga", 71, 10, 190, 38.0], +["Mroonga", 63, 2, 261, 29.0], +["Rroonga", 9, -1, 3, 0.6], +``` + +### `grn_bulk_*()` APIにおいて、 `realloc()` が呼ばれる回数を削減しました。 + +クエリーの実行結果表示の際に、表示サイズが大きいとWindows版のみ表示速度が遅くなる現象を改善しました。 +この変更によって、Windows版においてクエリーの実行結果表示のパフォーマンスが向上します。 +例えば、出力が100MBを超える場合には、約100倍速くなります。 + +### 関数 `index_column_source_records` を新規に追加しました + +この関数を使って、以下のようにインデックスカラムのソースを取得することができます。 + +```text +plugin_register functions/index_column + +table_create Memos TABLE_HASH_KEY ShortText + +table_create Terms TABLE_PAT_KEY ShortText \ + --default_tokenizer TokenBigram \ + --normalizer NormalizerAuto +column_create Terms index COLUMN_INDEX|WITH_POSITION Memos _key + +load --table Memos +[ +{"_key": "Groonga is a fast full text search engine."}, +{"_key": "Mroonga is a MySQL storage engine based on Groonga."}, +{"_key": "Rroonga is a Ruby bindings for Groonga."} +] +``` + +上記のようなテーブルに対して、以下のクエリーを発行すると、`Terms`テーブルに登録されているトークンが出現するレコードを表示できます。 + +``` +select Terms \ + --limit -1 \ + --sort_keys _id \ + --columns[index_records].stage output \ + --columns[index_records].type Memos \ + --columns[index_records].flags COLUMN_VECTOR \ + --columns[index_records].value 'index_column_source_records("index")' \ + --output_columns '_id, _key, index_records' +``` + +上記のクエリーの結果はそれぞれ以下のようになります。(説明に不要な部分は一部割愛して記載しています。) 一番右の値が、`index_column_source_records`の結果となります。 + +```text +[ 1, "groonga", [ "Groonga is a fast full text search engine.", "Mroonga is a MySQL storage engine based on Groonga.", "Rroonga is a Ruby bindings for Groonga." ] ], +[ 2, "is", [ "Groonga is a fast full text search engine.", "Mroonga is a MySQL storage engine based on Groonga.", "Rroonga is a Ruby bindings for Groonga." ] ], +(省略) +``` + +### さいごに + +7.0.9からの詳細な変更点は[7.1.0リリース 2017-12-29](/ja/docs/news.html#release-7.1.0)を確認してください。 + +それでは、Groongaでガンガン検索してください! -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20171228/9c76a2b6/attachment-0001.htm