お知らせ - 16系 — Groonga v16.0.2ドキュメント

本文へスキップ
`Ctrl`+`K`

# お知らせ - 16系

## 16.0.2リリース - 2026-05-07

### 改良

#### Ubuntu 26.04 LTSをサポート

### 修正

#### ODR(One Definition Rule)違反を修正

GH-2787 Nicolas PARLANTさんの報告。

LTO(Link-Time Optimization)を有効にしたビルドが、`grn_tokenizer_query`の重複定義によって失敗していました。この変更で、ODR違反を修正し、LTOを有効にできるようになります。

#### ソースアーカイブのbenchmarkディレクトリーに不足していたファイルを追加

GH-2793 Nicolas PARLANTさんの報告。

不足していたファイルは以下の通りです:

- groonga/benchmark/CMakeLists.txt

- groonga/benchmark/bench-distance.c

- groonga/benchmark/geo-distance-summary.rb

#### "tools"ディレクトリーが重複して作成される問題を修正

GH-2798 Kentaro Hayashiさんの報告。

AlmaLinuxやAmazon Linux向けのgroonga-toolsパッケージをインストールした時、以下のように"tools"ディレクトリーが重複して作成される問題を修正しました。

    /usr/share/groonga/tools/tools/

### 感謝

- Nicolas PARLANTさん

- Kentaro Hayashiさん

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

### 改良

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

入力テキストにプレフィックスを追加できるようになりました。これは`TokenLanguageModelKNN`の`passage_prefix`や`query_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`のテーブルが壊れることがあります。