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_size
とkey_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パッケージを 自動でインストールするようになります。