PostgreSQL で日本語全文検索

http://textsearch-ja.projects.postgresql.org/textsearch_ja.html

PostgreSQL 8.3 から全文検索がサポートされた。日本語はデフォルトでは組み込まれていないため textsearch-ja をソースからインストールしてみた。

Debian (squeeze) にて確認した。とりあえず、インストールまでしか試していない。

ソースのダウンロード

http://pgfoundry.org/frs/?group_id=1000298

より、textsearch_ja-9.0.0.tar.gz を取得した。

ビルドに必要な環境

 aptitude install postgresql postgresql-server-dev-8.4
 aptitude install mecab meab-ipadic-utf8 libmecab-dev build-essential

ビルドとインストール

 tar xzf textsearch_ja-9.0.0.tar.gz
 cd textsearch_ja-9.0.0
 make USE_PGXS=1
 make USE_PGXS=1 install

DB クラスターを再構築

template0 を UTF-8 にするため、クラスターを再構築する。

  pg_dropcluster --stop 8.4 main
  pg_createcluster -e utf-8 --start 8.4 main

確認用のDB作成

  su - postgres
  createdb textsearch
  psql -f /usr/share/postgresql/8.4/contrib/textsearch_ja.sql textsearch

動作確認

textsearch=# SELECT to_tsvector('japanese', 'サンマを食べると幸せな気分になります。');
                   to_tsvector                    
--------------------------------------------------
 'なる':5 'サンマ':1 '幸せ':3 '気分':4 '食べる':2