お知らせ - 16系#

16.0.1リリース - 2026-03-30#

改良#

[language_model_vectorize] prefixオプションを追加しました。#

入力テキストにプレフィックスを追加できるようになりました。これはTokenLanguageModelKNNpassage_prefixquery_prefixオプションと同様にプレフィックスを必要とするモデルに便利です。

language_model_vectorize("hf:///groonga/multilingual-e5-base-Q4_K_M-GGUF", \
                         "male child", \
                         {"prefix": "query: "})

[object_list] 出力にノーマライザーの情報を追加しました。#

object_listコマンドの出力に、normalizersフィールドが追加され、ノーマライザーの情報を出力するようにしました。

修正#

[HTTP] chunkedリクエストに関する誤ったエラー判定を修正しました。#

特定の条件において、有効なHTTPのchunkedリクエストを受け付けたにもかかわらず、エラーで失敗する可能性があるバグを修正しました。

この問題はchunkedリクエストが通信状況などで特定の条件で分割された場合にのみ発生していました。このバグによるエラーがloadコマンドの実行中に発生した場合、データのロードがすべて完了しないので、再実行が必要になります。

このバグによりインデックスの破損はおこりません。

誤ったfree関数を使用したためにクラッシュが発生するバグを修正しました。#

バルクオブジェクトに対してGRN_OBJ_FIN()の代わりにgrn_obj_unlink()を使用していたバグを修正しました。このバグによりクラッシュする可能性がありました。

Daniel Blackさんが報告

関連: https://jira.mariadb.org/browse/MDEV-39098

実験的な機能#

これらの機能はまだ実験的で安定していません。これらの機能は、絶対に実運用環境では使わないでください。

[データ型] JSON型における配列とオブジェクトのサポートを追加しました。#

JSON型はネストされたデータを含む配列とオブジェクトをサポートするようになりました。これによりすべてのJSONのデータ型がサポートされています。

スカラーカラムとFloat32ベクトルカラムに対するOpenZLによる圧縮をサポートしました。#

OpenZL によるスカラーカラムとFloat32ベクトルカラムの圧縮をサポートしました。OpenZLはZstandardよりも高い圧縮率を実現できます。

圧縮率の例を示します。

検証に使ったfloat32の配列のデータは次のとおりです:

  • 配列の要素数は40,960。

  • レコード数は10,000。

圧縮後のサイズ:

  • OpenZLによる圧縮: 1.3GB

  • Zstandardによる圧縮: 1.5GB

  • 圧縮なし: 1.6GB

エクストラクターを追加しました。#

エクストラクターはGroongaの新しい種類のモジュールのタイプで、トークン化前に構造化データからプレーンテキストを抽出します。

今はExtractorHTMLエクストラクターが組み込まれており、それはHTMLタグとHTMLエンティティを削除し、テキストコンテンツのみを抽出します。

次の例はextractコマンドを使用してExtractorHTMLでテキストを抽出する例です。

extract \
  --extractors 'ExtractorHTML' \
  --value "<html><body>He&lt;ll&gt;o</body></html>"
[[0,0.0,0.0],{"extracted":"He<ll>o"}]

感謝#

  • Daniel Blackさん

16.0.0リリース - 2026-02-09#

毎年恒例の肉の日メジャーリリースです!このリリースには後方互換性が壊れる変更はありません!既存のデータベースを移行せずにGroongaをアップグレードできます。既存のデータベースをそのまま使い続けることができます。

修正#

TABLE_DAT_KEYのテーブルでキーでオーバーフローを引き起こす問題を修正#

4096byteのキーをセットすると、TABLE_DAT_KEYのテーブルが壊れることがあります。