BloGroonga

2022-10-31

Groonga 12.0.9リリース

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

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

変更内容

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

改良

  • AlmaLinux AlmaLinux 9 向けのパッケージをサポートしました。

    Groonga 12.0.8 でサポートしていましたが、アナウンスしていませんでした。

  • escalate escalate() 関数のドキュメントを追加しました。

  • ノーマライザー NormalizerHTML を追加しました。(実験的)

    NormalizerHTML はHTML用のノーマライザーです。

    現在 NormalizerHTML<span></span> といったタグの削除と、 &amp;&#38; といった文字参照の展開を行います。

    以下は NormalizerHTML の例です。

    normalize NormalizerHTML "<span> Groonga &amp; Mroonga &#38; Rroonga </span>"
    [[0,1666923364.883798,0.0005481243133544922],{"normalized":" Groonga & Mroonga & Rroonga ","types":[],"checks":[]}]
    

    この例では、 <span></span> は削除され、 &amp;&#38;& に展開されています。

    タグを削除するかどうかは remove_tag オプションで指定できます。 (remove_tag オプションのデフォルト値は true です。)

    normalize 'NormalizerHTML("remove_tag", false)' "<span> Groonga &amp; Mroonga &#38; Rroonga </span>"
    [[0,1666924069.278549,0.0001978874206542969],{"normalized":"<span> Groonga & Mroonga & Rroonga </span>","types":[],"checks":[]}]
    

    この例では、 <span></span> は削除されていません。

    文字参照を展開するかどうかは expand_character_reference オプションで指定できます。 (expand_character_reference オプションのデフォルト値は true です。)

    normalize 'NormalizerHTML("expand_character_reference", false)' "<span> Groonga &amp; Mroonga &#38; Rroonga </span>"
    [[0,1666924357.099782,0.0002346038818359375],{"normalized":" Groonga &amp; Mroonga &#38; Rroonga ","types":[],"checks":[]}]
    

    この例では、 &amp;&#38; は展開されていません。

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

    CVE-2022-41741とCVE-2022-41742のセキュリティの修正が含まれています。これらのセキュリティーの修正の詳細については、 https://nginx.org/en/CHANGES を参照してください。

  • メモリーが不足した際に、同じログが大量に出力されないように変更しました。

    メモリーが不足した際に、 mmap failed!!!! というメッセージが大量にログが記載されることがありました。 このメッセージを可能な限り重複してログ出力されないように改良しました。

改良

  • select n_workers を指定したとき、 Groongaがクラッシュしたり、誤った結果を返すことがある問題を修正しました。

    この問題は、 n_workers1 より大きい値を指定し、かつ同時に drilldowns[{LABEL}].filter を使用している場合に発生していました。

    この問題は内部的な並列処理の際に、誤った値(オブジェクト)を参照していたことが原因で発生していました。 そのため、上記の条件が満たされたとき、内部的に並列処理のタイミングによって、Groongaがクラッシュしたり誤った値を返すことがありました。

既知の問題

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

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

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

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

さいごに

詳細については、以下のお知らせ、リリース自慢会も参照してください。

お知らせ 12.0.9リリース

リリース自慢会

リリース自慢会は、リリースノートを見ながら、Groongaの新機能・バグ修正を開発者が自慢する会です。

毎月リリースされている最新バージョンについて、開発者的に「これ!」という機能や、「ここをがんばった!」ということを紹介しています。 Liveチャットでコメントも受け付けていますので、気になっていることを質問したり、気になっていたあの機能について聞いたりすることも可能です。

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