PGroonga(ぴーじーるんが) 0.6.0リリース
今日は肉の日ですね!
PostgreSQLからGroongaを使えるようにするPGroongaの0.6.0をリリースしました!
PGroongaについてやPGroongaと他の類似システムとの違いについてはPGroonga 0.2.0のリリースアナウンスを参考にしてください。
0.6.0は0.5.0と互換性があるので、PGroonga用のインデックスを再作成する必要はありません。PGroongaをアップグレードし、接続しなおせばPGroonga 0.6.0になります。
PGroongaの速度については後の方でベンチマーク結果を紹介しています。
0.6.0での変更点
0.6.0での変更点は次の通りです。
pgroonga.score()
がPostgreSQL 9.3でもHOT更新をサポートしました。- GroongaのログをPostgreSQLのログの仕組みを使って出力するようにしました。
- 大量のデータを登録した時に検索結果にレコードが含まれない問題を修正しました。
- Debian GNU/Linux Jessie用のパッケージの提供をはじめました。
速度
別の日本語全文検索用拡張機能であるpg_bigmとPGroonga 0.6.0を日本語版Wikipediaのデータを使って比較した結果が以下にまとまっています。
かいつまんで説明すると次の結果になりました。
- インデックス作成速度:
- pg_bigmよりもPGroongaの方が圧倒的に速い(14倍速い)
- 検索速度:
- 2文字以下での検索はpg_bigmの方がPGroongaよりもやや速い
- 3文字以上での検索はpg_bigmの方よりもPGroongaの方が速い
- 3文字以上での検索では、pg_bigmはヒット数が増えるほど明らかに遅くなるが、PGroongaはそれほどでもない
ベンチマーク取得にあたってはhnakamurさんとnaoaさんが協力してくれました。ありがとうございます。
なお、ベンチマークの実行手順や生の結果や考察などは次のGitHub Issueで確認できます。
- PGroongaとpg_bigmのベンチマーク結果 · Issue #2 · groonga/wikipedia-search
- PGroongaとpg_bigmのベンチマーク結果のサマリーを作る · Issue #3 · groonga/wikipedia-search
おねがい
PGroongaは毎月のリリースを重ねて、性能も使い勝手も向上してきました。上述のベンチマーク結果を見ると実用になる速度がでていることがわかります。
すでに実際に利用している人たちもいます。まだ利用していない人は、ぜひ、自分たちのシステムで実用できるか検討してみてください。PGroongaは既存の優秀な全文検索エンジンGroongaを利用しているため性能は折り紙つきです。(検討結果を広く公開してもらえると他のPostgreSQLユーザーに有益です!)
また、公式サイト公開に向けて協力してくれる人も募集しています。http://pgroonga.github.io/で英語でも情報も公開しようと進めています。コードは書けないけど英語は書ける、デザインはできるなど協力してくれる方はGitHubのIssueにコメントを書いてください。まずはREADMEを英語に翻訳する作業があります。
まとめ
最新のPostgreSQLでGroongaを使えるようにするPGroongaの新しいバージョンをリリースしました。PostgreSQLで日本語全文検索をしたいという方はぜひ試してみてください!