BloGroonga

2024-02-29

Groonga 14.0.0リリース

Groonga 14.0.0をリリースしました!

メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく14.0.0へアップグレードできます!

それぞれの環境毎のインストール方法: インストール

変更内容

主な変更点は以下の通りです。

改良

  • 新しいトークナイザーTokenH3Indexを追加しました。(実験的)

    TokenH3Indexは、WGS84GetPointUInt64(H3 index)にトークナイズします。

  • 非テキストベースのトークナイザーを使ったインデックスのオンライン構築とオフライン構築をサポートしました。(実験的)

    TokenH3Index は、非テキストベースのトークナイザーの一つです。

  • [select] 非テキストベースのトークナイザーを使ったインデックスでの検索をサポートしました。(実験的)

    TokenH3Index は、非テキストベースのトークナイザーの一つです。

  • 新しい関数 distance_cosine(), distance_inner_product(), distance_l2_norm_squared(), distance_l1_norm() を追加しました。

    これらの関数とlimit Nを使うことで、ベクトル的に距離の近いレコードのみを取得することができます。

    これらの関数は、outputステージで距離を計算します。ただ、これらの関数はまだ最適化できていません。

    • distance_cosine(): コサイン類似度を計算します。
    • distance_inner_product(): 内積を計算します。
    • distance_l2_norm_squared(): ユークリッド距離を計算します。
    • distance_l1_norm(): マンハッタン距離を計算します。
  • 新しい関数number_round()を追加しました。

  • [load] loadを並列に実行できるようになりました。

    この機能は、loadinput_typeapache-arrowの時のみ有効です。

    この機能は、一つのカラムに対し一つのスレッドを割り当てます。対象のカラムがたくさんある時に、ロード時間の短縮が期待できます。

  • [select] --filter内で配列リテラルをなるべく、uvectorとして使えるようにしました。

    uvectorは、要素が固定長サイズのベクターです。 すべての要素の型が同じ場合、ベクターの変わりにuvactorを使えます。

  • [status] statusの結果にn_workersを追加しました。

  • 動的カラムの作成を最適化しました。

  • [WAL] 壊れたインデックスの再構築を並列で実行できるようになりました。

  • [select] output_type=apache-arrowの時に、_keyInt64型のテーブルへの参照カラムを表示できるようにしました。

修正

  • [Windows] Windows向けパッケージ内のgroonga-normalizer-mysqlのドキュメントのパスを修正しました。

    Documents of groonga-normalizer-mysql put under the share/ in this release.

  • [select] ビットごとの演算を行うとGroongaがクラッシュすることがある問題を修正しました。