BloGroonga

2022-09-29

Rroonga 12.0.8リリース

RubyからライブラリーとしてGroongaを使えるようにするRroongaのバージョン12.0.8をリリースしました!

Rroongaを動かすためにはGroongaが必要ですが、Rroongaをインストールすると簡単にGroongaもインストールできるようになっています。一言で説明すると、gem install rroongaでいい感じになる、です。詳細はインストールドキュメントを参照してください。

変更内容

12.0.8からの変更点の詳細は以下の通りです。

  • GroongaのDBを作成しなくてもパトリシアトライのテーブルを作成できるようになりました。

    パトリシアトライのテーブルは通常以下のように作成します。

      Groonga::PatriciaTrie.create(:key_type => "ShortText")
    

    上記の方法は、 Groonga::PatriciaTrie.create() 内でGroongaのDBを作成してから 作成したDB内にパトリシアトライのテーブルを作成します。

    今回の変更は、GroongaのDBを作成せずにパトリシアトライのテーブルを作成できるようにしました。 GroongaのDBを作成しない分、パトリシアトライのテーブル作成時間を短くできます。 パトリシアトライテーブルは検索だけではなく、 Groonga::PatriciaTrie#scan のように 高速に文字列操作をすることもできます。 ただ、このような文字列操作だけを行いたい場合に都度DBを作成するのはオーバーヘッドが大きいため DBを作成せずにパトリシアトライのテーブルを作れるようにしました。

    DBを作成せずにパトリシアトライのテーブルを作る場合は以下のように呼び出します。

      Groonga::PatriciaTrie.create(context: context,
                                   key_size: 4096,
                                   key_variable_size: true)
    

    注意する点は、"ShortText"などの型の名前は使えません。 また、ノーマライザーやトークナイザー、トークンフィルターなど名前の解決が必要なものはすべて使えません。 DBなしで作成したパトリシアトライのテーブルは自動でCloseされないので、明示的にCloseする必要があります。 (Groonga::PatriciaTrie.create {...}を使うと確実にCloseできます。)

    key_type を"ShortText"にしたい場合は、上記の通り key_sizekey_variable_size を指定する必要があります。 (key_size はキーのサイズ、 key_variable_size はキーが可変長かどうかを設定するパラメータです。)

以前のバージョンでは、Windows用のRroongaのgemには、事前にコンパイルされた RroongaとGroongaが入っていましたが、10.0.1から提供をやめました。

fat gem をやめることによるメリットについては、以下の資料も参考になります。 https://www.clear-code.com/blog/2020/9/3.html

インストール手順に変更はありませんが、インストール時にMSYS2のGroongaパッケージを 自動でインストールするようになります。