PGroonga(ぴーじーるんが) 0.3.0リリース
今日は年に一度の肉の日ですね!
PostgreSQLからGroongaを使えるようにするPGroongaの0.3.0をリリースしました!
PGroongaについてやPGroongaと他の類似システムとの違いについてはPGroonga 0.2.0のリリースアナウンスを参考にしてください。
0.3.0は0.2.0と互換性がありません。そのため、PGroonga用のインデックスを再作成する必要があります。具体的な手順は次の通りです。
-- まずPGroongaを更新する。その後で↓を実行する。
DROP EXTENSION pgroonga CASCADE;
CREATE EXTENSION pgroonga;
-- ↑のDROP EXTENSION CASCADEでpgroonga用のインデックスも消えるので
-- インデックスを作成し直す。
0.3.0での変更点
0.3.0での新機能は次の通りです。
- エンコーディング情報を反映するようになった。
- トークナイザーをカスタマイズできるようになった。MeCabを使った形態素解析ベースのトークナイザーも使えます。
- ノーマライザーをカスタマイズできるようになった。
- ロックを減らした。
- 内部で保存しているカラムの値をLZ4で圧縮するようにした。
- 全文検索用以外のインデックスもサポートした。B-treeインデックスの代わりにも使える。(CREATE INDEXで
USING pgroonga
を指定するだけでB-treeインデックスと同じように使える。) - Ubuntu 14.10用のパッケージを用意した。
0.2.0リリース後の反応
- PostgreSQLの日本語対応全文検索モジュールpg_bigmとPGroongaを検証してみた - CreateField Blog
- 日本語Wikipediaのデータを使って既存の全文検索拡張機能であるpg_bigmとPGroongaの性能を検証しています。このケースでは更新時間も検索時間もPGroongaの方が高速でした。PGroongaの速度に興味のある方はぜひ参考にしてください。
- PGroongaを使うための調査。 - 青空を探す、旅の記録。
- PGroongaはPostgreSQL本体の制限によりWALに対応していません。そんなPGroongaをアクティブ・スタンバイ構成で使う方法について検証しています。
おねがい
PGroongaはまだ開発が始まったばかりのソフトウェアです。Groongaをベースにしているため全文検索エンジンとして優秀な性能と安定性を揃えていますが、PostgreSQLとの連携部分はまだ発展途上です。Groongaの性能を活かしきてれているかベンチマークをしたり、PostgreSQLらしく使えるか動作検証をしたりといった形で開発への協力をお願いします。検証結果はブログにまとめるなどWeb上に公開してしてもらえると参照しやすくて助かります。
まとめ
最新のPostgreSQLでGroongaを使えるようにするPGroongaの新しいバージョンをリリースしました。PostgreSQLで日本語全文検索をしたいという方はぜひ試してみてください!