Tsearch2のセットアップ -SUSE Linux 9.1 編-

PostgreSQLの追加モジュールに全文検索機能を追加する”Tsearch2″というものがあります。このモジュールは日本語には対応していないのですが、kakasiなどを使用して、分かち書きをしてあげることで日本語の全文検索が可能になるようです。これについては下記のサイトにパッチやドキュメントなどが用意されています。(もう消えてしまったようです)
PostgreSQL + Tsearch2日本語化パッチによる日本語全文検索システム

http://www.oss.ecl.ntt.co.jp/tsearch2j/

ここでは、SUSE Linux 9.1でTsearch2を使用するために必要な設定のやり方を紹介します。Tsearch2の使用方法や設定についての詳細は下記のサイトをご覧ください。ここでの設定方法も下記のサイトをもとに、各ファイルのパスをSUSE Linux 9.1に合わせて書いています。
Tsearch2 – Introduction

http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/docs/tsearch-V2-intro.html

インストール

字句解析に必要となる辞書データを作成するために、ISpellとISpellのソースコードをYaSTを使用してインストールします。

辞書データのビルド

前項でダウンロードしたISpellのソースコードを展開し、一緒にダウンロードされたパッチデータを適用します。

ISpellのソースツリー内のlanguages/englishに移動し、辞書データをビルドします。

“english.med”というファイルが作成されるので、ISpellの辞書データが保存されているディレクトリにコピーします。

Tsearch2の登録

使用したいデータベースにTsearch2を登録します。この操作で、Tsearch2が利用するテーブルがいくつか作成され、デフォルトデータが登録されます。

ロケールの設定

pg_ts_cfgテーブルにシステムロケールの情報を追加します。SUSE Linux 9.1ではデフォルト設定ではUTF-8になっていますので、次のようなSQLを実行します。

‘default_english’は設定の名前、prs_nameは使用するパーサー名でここではデフォルト、最後はロケールです。

辞書の登録

「辞書データのビルド」でビルドした辞書をTsearch2に登録します。ここでは、”en_ispell”という名前で登録します。次のSQLを実行します。

これで、辞書が登録されました。次に、常にこの辞書を使用するように設定します。

字句解析の設定

どのタイプの字句に、どの辞書を使用するかという設定を行います。参考にしたサイトと同じように、lhword、lpart_hword、lwordのタイプの字句に対しては、前項で登録した”en_ispell”を使用し、それ以外の字句に対しては”simple”(デフォルトで登録されています。)を使用するように設定します。

en_ispellを使用するように設定するSQL

simpleを使用するように設定するSQL

以上の操作でTsearch2が使用できるようになります。

関連記事

  1. ドキュメントページを作成しました

  2. クラスのモダン化

  3. セミナーのお知らせ

  4. Nexus7完全放電から復活まで

  5. [お知らせ] セミナー中止のお知らせ

  6. iPhone 7のSuicaを試してみた

最近の著書

最近の記事