[groonga-dev,04919] [ANN] Groonga 11.1.1

Back to archive index
Horimoto Yasuhiro horim****@clear*****
2021年 12月 28日 (火) 14:01:26 JST


年の瀬ですね。こんにちは。堀本です。今年最後のリリースです。
Groonga 11.1.1 をリリースしました!

    https://groonga.org/ja/docs/news.html#release-11-1-1

変更点一覧:

    https://groonga.org/ja/blog/2021/12/29/groonga-11.1.1.html

## 主な変更内容

### 改良

* [select] 組み合わせフレーズ近傍検索をサポートしました。

  この機能は、 '*NP"..." OR *NP"..." OR ...' の短縮形です。
  例えば、以下のように、 query を使って *NP を複数実行する式のかわりに *NPP を使えます。

    query ("title * 10 || content",
           "*NP"a 1 x" OR
            *NP"a 1 y" OR
            *NP"a 1 z" OR
            *NP"a 2 x" OR
            *NP"a 2 y" OR
            *NP"a 2 z" OR
            *NP"a 3 x" OR
            *NP"a 3 y" OR
            *NP"a 3 z" OR
            *NP"b 1 x" OR
            *NP"b 1 y" OR
            *NP"b 1 z" OR
            *NP"b 2 x" OR
            *NP"b 2 y" OR
            *NP"b 2 z" OR
            *NP"b 3 x" OR
            *NP"b 3 y" OR
            *NP"b 3 z"")

  この機能によって、上記の式を *NPP"(a b) (1 2 3) (x y z)" と書くことができます。
  加えて、 *NPP"(a b) (1 2 3) (x y z)" は、 '*NP"..." OR *NP"..." OR ...' より高速です。

    query ("title * 10 || content",
           "*NPP"(a b) (1 2 3) (x y z)"")

  この機能は、 '*NP"..." OR *NP"..." OR ...' のような近傍フレーズ検索のパフォーマンスを改善するために実装されました。

* [select] 順序付き組み合わせフレーズ近傍検索をサポートしました。

  この機能は、 '*ONP"..." OR *ONP"..." OR ...' の短縮形です。
  例えば、以下のように、 query を使って *ONP を複数実行する式のかわりに *ONPP を使えます。

    query ("title * 10 || content",
           "*ONP"a 1 x" OR
            *ONP"a 1 y" OR
            *ONP"a 1 z" OR
            *ONP"a 2 x" OR
            *ONP"a 2 y" OR
            *ONP"a 2 z" OR
            *ONP"a 3 x" OR
            *ONP"a 3 y" OR
            *ONP"a 3 z" OR
            *ONP"b 1 x" OR
            *ONP"b 1 y" OR
            *ONP"b 1 z" OR
            *ONP"b 2 x" OR
            *ONP"b 2 y" OR
            *ONP"b 2 z" OR
            *ONP"b 3 x" OR
            *ONP"b 3 y" OR
            *ONP"b 3 z"")

  この機能によって、上記の式を *ONPP"(a b) (1 2 3) (x y z)" と書くことができます。
  加えて、 *ONPP"(a b) (1 2 3) (x y z)" は、 '*ONP"..." OR *ONP"..." OR ...' より高速です。

    query ("title * 10 || content",
           "*ONPP"(a b) (1 2 3) (x y z)"")

  この機能は '*ONP"..." OR *ONP"..." OR ...' のような順序付き近傍フレーズ検索のパフォーマンスを改善するために実装されました。

* [request_cancel] 検索実行中に request_cancel を検知しやすくしました。

  request_cancel を検知するために、リターンコードのチェックを増やしたためです。

* [thread_dump] 新しいコマンド thread_dump を追加しました。

  現状、このコマンドはWindowsでしか動作しません。
  このコマンド実行時の全てのスレッドのバックトレースをNOTICEレベルのログとして出力できます。

  この機能は、Groongaが応答を返さない等の問題を解決するのに役立ちます。

* [CentOS] CentOS 8のサポートをやめました。

  CentOS 8は、2021年12月31日でEOLとなるためです。

### 修正

* 無効なパラメータを持つインデックスカラムを削除できない問題を修正しました。

  例えば、以下のように column_create を使って無効なインデックスカラムを作成した時、テーブルが削除できなくなります。

  table_create Statuses TABLE_NO_KEY
  column_create Statuses start_time COLUMN_SCALAR UInt16
  column_create Statuses end_time COLUMN_SCALAR UInt16

  table_create Times TABLE_PAT_KEY UInt16
  column_create Times statuses COLUMN_INDEX Statuses start_time,end_time
  [
    [
      -22,
      1639037503.16114,
      0.003981828689575195,
      "grn_obj_set_info(): GRN_INFO_SOURCE: multi column index must be created with WITH_SECTION flag: <Times.statuses>",
      [
        [
          "grn_obj_set_info_source_validate",
          "../../groonga/lib/db.c",
          9605
        ],
        [
          "/tmp/d.grn",
          6,
          "column_create Times statuses COLUMN_INDEX Statuses start_time,end_time"
        ]
      ]
    ],
    false
  ]
  table_remove Times
  [
    [
      -22,
      1639037503.16515,
      0.0005414485931396484,
      "[object][remove] column is broken: <Times.statuses>",
      [
        [
          "remove_columns",
          "../../groonga/lib/db.c",
          10649
        ],
        [
          "/tmp/d.grn",
          8,
          "table_remove Times"
        ]
      ]
    ],
    false
  ]

### 既知の問題

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

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

  * 'content @ "Groonga" *< content @ "Mroonga"'

* GRN_II_CURSOR_SET_MIN_ENABLE が原因でマッチするはずのレコードを返さないことがあります。



groonga-dev メーリングリストの案内
Back to archive index