F.43. tsearch2

tsearch2モジュールは、テキスト検索がリリース8.3でコアPostgreSQLに統合される前の、tsearch2を使用したアプリケーション向けの後方互換のテキスト検索機能を提供します。

F.43.1. 移植に関する問題

組み込みのテキスト検索機能はtsearch2を基にしており、大部分は似ていますが、多くの小さな違いがあります。 このため、既存のアプリケーションにおいて移植に関する問題が発生します。

置き換え版のtsearch2で対応されていない問題もいくつか存在します。 このため、以下のいずれかの場合はアプリケーションコードの変更が必要です。

F.43.2. 8.3より前のインストレーションを変換

tsearch2を使用した、8.3より前のインストレーションからの推奨更新方法を以下に示します。

  1. 通常の方法で古いインストレーションのダンプを作成します。 ただし、pg_dumpまたはpg_dumpall-c (--clean)オプションは使用しないでください。

  2. 新しいインストレーションで、空のデータベースを作成し、置き換え版のtsearch2をテキスト検索を使用する各データベースにインストールしてください。 これをダンプデータをロードする前に行う必要があります。 古いインストレーションがpublic以外のスキーマにtsearch2のオブジェクトを持つ場合は、置き換え版のオブジェクトが同じスキーマ内に生成されるようにCREATE EXTENSIONコマンドを確実に調整してください。

  3. ダンプデータをロードしてください。 実際、元のtsearch2のオブジェクトの再作成に失敗するため、いくつかエラーが報告されます。 これらのエラーは無視することができますが、単一トランザクションでダンプをリストアすることができないことを意味します。 (例えば、pg_restore-1スイッチを使用することはできません。)

  4. リストアしたtsearch2の設定テーブル(pg_ts_cfgなど)の内容を検査してください。 そして、必要に応じて同等の組込みテキスト検索設定を作成してください。 古い設定テーブルから有用な情報をすべて取り出した後、これらを削除することができます。

  5. アプリケーションを試験します。

後で、最終的に置き換え版のtsearch2モジュールをアンインストールできるように、アプリケーション内の別名テキスト検索オブジェクトへの参照の名前を変更する方がよいでしょう。

F.43.3. 参考資料

Tsearch2開発サイト http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/