Groonga 13.0.6リリース
Groonga 13.0.6をリリースしました!
それぞれの環境毎のインストール方法: インストール
変更内容
主な変更点は以下の通りです。
改良
-
highlight_html 以下のように highlight_html() に空文字列を指定してもエラーを報告しなくなりました。
highlight_html()
は空のテキストを返すようになります。table_create Entries TABLE_NO_KEY column_create Entries body COLUMN_SCALAR ShortText table_create Terms TABLE_PAT_KEY ShortText \ --default_tokenizer 'TokenNgram("report_source_location", true)' \ --normalizer 'NormalizerNFKC150' column_create Terms document_index COLUMN_INDEX|WITH_POSITION Entries body load --table Entries [ {"body": "ab cd ed gh"} ] select Entries \ --match_columns body \ --query 'ab' \ --output_columns 'highlight_html("", Terms)' [ [ 0, 0.0, 0.0 ], [ [ [ 1 ], [ [ "highlight_html",null ] ], [ "" ] ] ] ]
-
動的カラムや疑似カラムを対象に
aggregator_*
を使えるようになりました。疑似カラムとは、 _ で始まるカラムのことです。(例: _id, _nsubrecs, …)
aggregator_*
は集計関数で、下記の種類があります。-
aggregator_sum()
指定したカラムの値の合計値を返します。
-
aggregator_mean()
指定したカラムの値の算術平均を返します。
-
aggregator_sd()
指定したカラムの値の標準偏差を返します。不偏標準偏差を返すこともできます。
drilldown
と合わせて使うことを想定しています。 例えば、drilldown
で商品種別毎の売上の平均を取りたい場合は以下のようにします。table_create Items TABLE_HASH_KEY ShortText column_create Items price COLUMN_SCALAR UInt32 column_create Items tag COLUMN_SCALAR ShortText load --table Items [ {"_key": "Book", "price": 1000, "tag": "A"}, {"_key": "Note", "price": 1000, "tag": "B"}, {"_key": "Box", "price": 500, "tag": "B"}, {"_key": "Pen", "price": 500, "tag": "A"}, {"_key": "Food", "price": 500, "tag": "C"}, {"_key": "Drink", "price": 300, "tag": "B"} ] select Items \ --drilldowns[tag].keys tag \ --drilldowns[tag].output_columns _key,_nsubrecs,price_mean \ --drilldowns[tag].columns[price_mean].stage group \ --drilldowns[tag].columns[price_mean].type Float \ --drilldowns[tag].columns[price_mean].flags COLUMN_SCALAR \ --drilldowns[tag].columns[price_mean].value 'aggregator_mean(price)' [ [ 0, 0.0, 0.0 ], [ [ [ 6 ], [ [ "_id", "UInt32" ], [ "_key", "ShortText" ], [ "price", "UInt32" ], [ "tag", "ShortText" ] ], [ 1, "Book", 1000, "A" ], [ 2, "Note", 1000, "B" ], [ 3, "Box", 500, "B" ], [ 4, "Pen", 500, "A" ], [ 5, "Food", 500, "C" ], [ 6, "Drink", 300, "B" ] ], { "tag": [ [ 3 ], [ [ "_key", "ShortText" ], [ "_nsubrecs", "Int32" ], [ "price_mean", "Float" ] ], [ "A", 2, 750.0 ], [ "B", 3, 600.0 ], [ "C", 1, 500.0 ] ] } ] ]
-
修正
-
highlight_html ハイライト位置が正しくないことがある問題を修正しました。
例えば、ハイライト対象に文字数が1のキーワードと文字数が2のキーワードを両方指定した時に発生します。
table_create Entries TABLE_NO_KEY column_create Entries body COLUMN_SCALAR ShortText table_create Terms TABLE_PAT_KEY ShortText \ --default_tokenizer 'TokenNgram("report_source_location", true)' \ --normalizer 'NormalizerNFKC150' column_create Terms document_index COLUMN_INDEX|WITH_POSITION Entries body load --table Entries [ {"body": "斉藤の一人"} ] select Entries \ --match_columns body \ --query '斉藤 一' \ --output_columns 'highlight_html(body, Terms)' [ [ 0, 0.0, 0.0 ], [ [ [ 1 ], [ [ "highlight_html", null ] ], [ "<span class=\"keyword\">斉藤</span>の<span class=\"keyword\">一</span>人" ] ] ] ]