BloGroonga

2017-04-29

PostgreSQL用高速日本語全文検索モジュールPGroonga(ぴーじーるんが) 1.2.0リリース

PostgreSQLで高速日本語全文検索をできるようにするPGroongaの1.2.0をリリースしました!

新規ユーザーの方は、PGroonga 1.0.0のリリースアナウンスのPGroongaについても参照してください。

ハイライト

今回のリリースのハイライトは次の通りです。

  • レプリケーション機能の改良

  • トークンフィルター・プラグインのサポート

  • PGroongaのインデックスの自動復旧機能の追加

  • 2.0.0へのスムーズな移行の準備

それぞれ説明します。

レプリケーション機能の改良

今回のリリースではレプリケーションまわりの機能を改良しています。

NULLを含むカラムでもレプリケーションできるようになりました。

データ同期のタイミングも増えました。これまではSELECT時のみ同期していましたが、INSERT時にも同期するようになりました。

Ubuntu 17.04とCentOS 6のパッケージでもレプリケーションできるようになったので、より使いやすくなっています。

レプリケーションの詳細は公式ドキュメント「レプリケーション」を参照してください。

トークンフィルター・プラグインのサポート

CREATE INDEX USING pgroongaでインデックスをつくるときにトークンフィルターとプラグインを指定できるようになりました。それぞれtoken_filterspluginsで指定します。

これによりチューニングの幅が広がりました。たとえば、英語のテキストを全文検索したい場合にステミング機能を使えるようになりました。使い方は公式ドキュメントを参照してください。

PGroongaのインデックスの自動復旧機能の追加

PostgreSQLを強制終了するとPGroongaのインデックスが壊れることがあります。滅多なことで強制終了するものではありませんが、せざるを得ない場合もあり、そのときに壊れることがあります。

pgroonga_checkモジュールを使うと起動時にPGroongaのインデックスをチェックし、壊れていたら自動で復旧できます。強制終了が起こり得る場合はこのモジュールを使ってみてください。

2.0.0へのスムーズな移行の準備

PGroonga 2.0.0では今よりもっと柔軟に検索できるようになる予定です。ただ、そのために現在の使い方と互換性がなくなる箇所があります。

互換性がなくなるとアップグレードが大変になるため、できるだけスムーズにアップグレードできるようにしたいものです。

そのために、今回のリリースから徐々に2.0.0と同じ使い方もできるようにしはじめました。2.0.0と同じ使い方に徐々に変更していくことでスムーズにアップグレードできるようになるだろうという寸法です。

具体的には以下の2.0.0での全文検索用の演算子を1.2.0でも使えるようにしました。

今後は1.xでも&@&?を使うようにしてください。これらを使っておけば変更なしに2.0.0でも動きます。%%@@は非推奨とします。

2.0.0は近いうちにリリースする予定ですが、2.0.0でも1.xの演算子を使えるようにするなど、できるだけスムーズにアップグレードできるようにする予定です。お楽しみに。

アップグレード方法

1.0以降のすべてのバージョンと互換性があります。アップグレードの「互換性がある場合」用の手順でアップグレードしてください。

おしらせ

PGroongaのサポートサービスを提供しています。インデックスや検索の設計方法に関するコンサルティングやトラブル時の調査、パフォーマンス改善・新機能追加などの技術支援など、PGroongaに関わるサポートが必要な場合はご相談ください。

まとめ

PGroongaの新しいリリースを紹介しました。インデックス破損の自動復旧が追加されたりしてどんどん使いやすくなっています。

ここで紹介したもの以外の変更点はリリースノートを参照してください。

PostgreSQLで高速に日本語全文検索をしたいという方はPGroongaを使ってガンガン検索してください!