BloGroonga

2015-03-29

PGroonga(ぴーじーるんが) 0.4.0リリース

今日は肉の日ですね!

PostgreSQLからGroongaを使えるようにするPGroongaの0.4.0をリリースしました!

PGroongaについてやPGroongaと他の類似システムとの違いについてはPGroonga 0.2.0のリリースアナウンスを参考にしてください。

0.4.0は0.3.0と互換性がありません。そのため、PGroonga用のインデックスを再作成する必要があります。具体的な手順は次の通りです。

-- まずPGroongaを更新する。その後で↓を実行する。
DROP EXTENSION pgroonga CASCADE;
CREATE EXTENSION pgroonga;
-- ↑のDROP EXTENSION CASCADEでPGroonga用のインデックスも消えるので
-- インデックスを作成し直す。

0.4.0での変更点

0.4.0での変更点は次の通りです。

改良

  • column LIKE '%keyword'をサポート。column @@ 'keyword'のシンタックスシュガーです。使い方
  • マルチカラムインデックスでも範囲検索をサポート。
  • Travis CIでPGroongaをセットアップするためのスクリプトを追加。PGroongaを使ったアプリケーションをTravis CIでテストしたい場合は.travis.ymlinstallセクションに以下を追加すればセットアップが完了します。

    curl --silent --location https://github.com/pgroonga/pgroonga/raw/master/data/travis/setup.sh | sh
    
  • Groongaでのテーブル名を返す pgroonga.table_name() 関数を追加。↓のpgroonga.command()と一緒に使う用の関数。使い方
  • Groongaのコマンドを実行する pgroonga.command() 関数を追加。使い方
  • Groongaでの検索スコアーを返す pgroonga.score() 関数を追加。使い方
  • timestamp 型をサポート。
  • timestamp with time zone 型をサポート。
  • varchar[] 型をサポート。使い方
  • text[] 型に対する全文検索をサポート。使い方
  • 同じSELECTに全文検索と(インデックスを使える)他の検索条件があるケースに対応。
  • CentOS 5とCentOS 6用のYumリポジトリーを追加。

変更

  • インデックスを使った text == text という検索条件のサポートを削除。代わりに4096バイト以下のサイズのvarcharを使ってください。
  • PostgreSQL 9.2のサポートを削除。

0.3.0リリース後の反応

あまりありませんでした。PGroongaを使ってみたという報告(動いても動かなくても教えてもらえると助かります!)、PGroongaの運用方法の検討結果、pg_bigmやpg_trgmなど既存の全文検索システムとのベンチマーク結果、MySQLからGroongaを使えるようにするMroongaとのベンチマーク結果など、PGroonga関連のことを試してみたらぜひ公開してください!

おねがい

PGroongaはまだ開発が始まったばかりのソフトウェアです。Groongaをベースにしているため全文検索エンジンとして優秀な性能と安定性を揃えていますが、PostgreSQLとの連携部分はまだ発展途上です。Groongaの性能を活かしきてれているかベンチマークをしたり、PostgreSQLらしく使えるか動作検証をしたりといった形で開発への協力をお願いします。検証結果はブログにまとめるなどWeb上に公開してしてもらえると参照しやすくて助かります。

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

まとめ

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