BloGroonga

2022-08-29

Groonga 12.0.7リリース

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

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

変更内容

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

改良

  • 新しい関数 escalate() を追加しました。(実験的)

    escalate() 関数は既存のマッチエスカレーション( 検索 )と似ています。この関数は、全ての条件で使えます。(既存のマッチエスカレーションは、一つの転置インデックスによる全文検索で使えます。)

    escalate() 関数は検索結果の数を制限したい時に便利です。検索結果の数の制限は、 --limit でもできますが、 --limit は全ての条件を評価した後に評価されます。 escalate() 関数は結果セットが THRESHOLD より多くのレコードを持っていたら、その時点で評価を終了します。つまり、 escalate() 関数は条件の評価の数を減らせる可能性があります。

    escalate() の構文は以下の通りです。

    escalate(THRESHOLD_1, CONDITION_1,
             THRESHOLD_2, CONDITION_2,
             ...,
             THRESHOLD_N, CONDITION_N)
    

    THRESHOLD_N は、0や29のような正の数です。 CONDITION_Nnumber_column > 29 のような スクリプト構文 を使った文字列です。

    現在の結果セットのレコード数が THRESHOLD_1 以下の場合、 CONDITION_1 が実行されます。同様に、 CONDITION_1 評価後の結果セットのレコード数が THRESHOLD_2 以下の場合、 CONDITION_2 が実行されます。 CONDITION_2 評価後の結果セットのレコード数が THRESHOLD_3 より大きい場合、 escalate() は終了します。

    全ての CONDITION が実行された場合、 escalate(THRESHOLD_1, CONDITION_1, ..., THRESHOLD_N, CONDITION_N)CONDITION_1 || ... || CONDITION_N と同じです。

    escalate() 関数は、 && and &! のような論理演算子と一緒に使えます。:

    number_column > 10 && escalate(THRESHOLD_1, CONDITION_1,
                                   ...,
                                   THRESHOLD_N, CONDITION_N)
    number_column > 10 &! escalate(THRESHOLD_1, CONDITION_1,
                                   ...,
                                   THRESHOLD_N, CONDITION_N)
    

    これらは、 number_column > 10 && (CONDITION_1 || ... || CONDITION_N)number_column > 10 &! (CONDITION_1 || ... || CONDITION_N) と同じです。

    しかし、これらの挙動は使いにくいため変更される可能性があります。

  • [httpd] バンドルしているnginxのバージョンを1.23.1に更新しました。

  • select --n_workers オプションのドキュメントを追加しました。

修正

  • OR検索実行中に request_cancel を実行した場合、Groongaの応答が遅くなることがある問題を修正しました。

    OR検索の結果が多い場合や多くのOR条件をもつクエリー場合に、 request_cancel コマンドが原因でGroongaのレスポンスが遅くなることがあります。

既知の問題

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

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

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

さいごに

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

お知らせ 12.0.7リリース

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