BloGroonga

2015-05-29

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は毎月のリリースを重ねて、性能も使い勝手も向上してきました。上述のベンチマーク結果を見ると実用になる速度がでていることがわかります。

すでに実際に利用している人たちもいます。まだ利用していない人は、ぜひ、自分たちのシステムで実用できるか検討してみてください。PGroongaは既存の優秀な全文検索エンジンGroongaを利用しているため性能は折り紙つきです。(検討結果を広く公開してもらえると他のPostgreSQLユーザーに有益です!)

また、公式サイト公開に向けて協力してくれる人も募集しています。http://pgroonga.github.io/で英語でも情報も公開しようと進めています。コードは書けないけど英語は書ける、デザインはできるなど協力してくれる方はGitHubのIssueにコメントを書いてください。まずはREADMEを英語に翻訳する作業があります。

まとめ

最新のPostgreSQLでGroongaを使えるようにするPGroongaの新しいバージョンをリリースしました。PostgreSQLで日本語全文検索をしたいという方はぜひ試してみてください!