BloGroonga

2021-09-29

Groonga 11.0.7リリース

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

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

変更内容

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

改良

  • load "[int, int,…]" のような文字列を [int, int,…] のような整数のベクターにキャストするようにしました。

    例えば、以下のように、"[1, -2]" のようなベクターを文字列としてロードしたとしても、 [1, -2] のように整数のベクターとして扱います。

      table_create Data TABLE_NO_KEY
      column_create Data numbers COLUMN_VECTOR Int16
      table_create Numbers TABLE_PAT_KEY Int16
      column_create Numbers data_numbers COLUMN_INDEX Data numbers
    
      load --table Data
      [
      {"numbers": "[1, -2]"},
      {"numbers": "[-3, 4]"}
      ]
    
      dump   --dump_plugins no   --dump_schema no
      load --table Data
      [
      ["_id","numbers"],
      [1,[1,-2]],
      [2,[-3,4]]
      ]
    
      column_create Numbers data_numbers COLUMN_INDEX Data numbers
      select Data --filter 'numbers @ -2'
      [[0,0.0,0.0],[[[1],[["_id","UInt32"],["numbers","Int16"]],[1,[1,-2]]]]]
    

    この機能は以下の型をサポートします。

    • Int8
    • UInt8
    • Int16
    • UInt16
    • Int32
    • UInt32
    • Int64
    • UInt64
  • load 文字列として表現されたJSON配列を文字列のベクターとしてロードできるようにしました。

    例えば、以下のように "["hello", "world"]" のような文字列として表現されたJSON配列をロードした場合、 ["hello", "world"] のように2つの要素を持つベクターとして扱います。

      table_create Data TABLE_NO_KEY
      [[0,0.0,0.0],true]
      column_create Data strings COLUMN_VECTOR ShortText
      [[0,0.0,0.0],true]
      table_create Terms TABLE_PAT_KEY ShortText   --normalizer NormalizerNFKC130   --default_tokenizer TokenNgram
      [[0,0.0,0.0],true]
      column_create Terms data_strings COLUMN_INDEX Data strings
      [[0,0.0,0.0],true]
      load --table Data
      [
      {"strings": "[\"Hello\", \"World\"]"},
      {"strings": "[\"Good-bye\", \"World\"]"}
      ]
      [[0,0.0,0.0],2]
      dump   --dump_plugins no   --dump_schema no
      load --table Data
      [
      ["_id","strings"],
      [1,["Hello","World"]],
      [2,["Good-bye","World"]]
      ]
    
      column_create Terms data_strings COLUMN_INDEX Data strings
      select Data --filter 'strings @ "bye"'
      [
        [
          0,
          0.0,
          0.0
        ],
        [
          [
            [
              1
            ],
            [
              [
                "_id",
                "UInt32"
              ],
              [
                "strings",
                "ShortText"
              ]
            ],
            [
              2,
              [
                "Good-bye",
                "World"
              ]
            ]
          ]
        ]
      ]
    

    以前のバージョンでは、 "["hello", "world"]" のような文字列として表現されたJSON配列をロードした場合は、 ["["hello", "world"]"] のような一つの要素を持つベクターとして扱っていました。

  • [Documentation] 以下の項目についてのドキュメントを追加しました。

    • column_create WEIGHT_FLOAT32 フラグについてのドキュメントを追加しました。
    • NormalizerNFKC121 NormalizerNFKC121 についてのドキュメントを追加しました。
    • NormalizerNFKC130 NormalizerNFKC130 についてのドキュメントを追加しました。
    • NormalizerTable NormalizerTable についてのドキュメントを追加しました。
  • Groongaが要求する Apache Arrow のバージョンを 3.0.0 に更新しました。

修正

  • テーブル作成時に無効なオプションを持つトークナイザーを指定するとメモリーリークする問題を修正しました。

  • Hashテーブルに新しいエントリーを追加できなくなることがある問題を修正しました。

    このバグは、Groonga 11.0.6 でのみ発生し、頻繁にデータを追加、削除すると発生することがあります。 もし、このバグが発生した場合は、以下の手順を実行することで、この問題を解決できます。

    1. Groongaを11.0.6から11.0.7以降にアップグレードします。
    2. 元のテーブルと同じスキーマを持つ新しいテーブルを作ります。
    3. 元のテーブルから新しいテーブルにデータをコピーします。
  • [Windows] メモリー不足によって、新しくファイルのオープンに失敗した時にリソースリークする問題を修正しました。

既知の問題

  • 現在Groongaには、ベクターカラムに対してデータを大量に追加、削除、更新した際にデータが破損することがある問題があります。

  • [ブラウザーベースの管理ツール] 現在Groongaには、レコード一覧の管理モードのチェックボックスにチェックを入れても、非管理モードに入力された検索クエリーが送信されるという問題があります。

  • *<*> は、filter条件の右辺に query() を使う時のみ有効です。もし、以下のように指定した場合、 *<*>&& として機能します。

    • 'content @ "Groonga" *< content @ "Mroonga"'
  • GRN_II_CURSOR_SET_MIN_ENABLE が原因でマッチするはずのレコードを返さないことがあります。

さいごに

詳細については、以下のお知らせも参照してください。

お知らせ 11.0.7リリース

それでは、Groongaでガンガン検索してください!