PostgreSQL の全文検索
Tsearch2 というのを日本語で利用できるようにしたパッチ?でやろうと検討していますが、
対応するPostgreSQLが 7.4.xと8.0.xしかないのでバージョン7.2.8で動くのかを検証をしています。
Tsearch2 日本語化?
http://www.oss.ecl.ntt.co.jp/tsearch2j/
まず、動かないとは思うのですが、どうしても自社アプリが7.2系でしか動かないので
無理矢理動かしてみようと言うことで試してみました。
とりあえず、7.2.8のソースにはtsearch (v2じゃない)が入っていたのでこれをそのまま利用。
日本語のパッチ部分のコンパイルで、エラーが出るのでとりあえず、エラー出る行をコメントアウトしたら通った。
まあ、ここまでは良いんだけど...
サンプルのテーブルを作成する部分でうまくいかないです。
問題のCREATE TABLE ですが、7.2.8 だと、tsvector なんて型はありませんがなと怒られる。
CREATE TABLE tblSample ( intIndex int4, strText text, idxFTI tsvector );
PostgreSQLの資料を読んでるんですが、tsvectorなんてのは出てこないんですよねえ。
どういった型かくらいわかれば定義できそうなのに...。
とりあえず、少し進んで今度はto_tsquery()っていう関数がないと怒られています。
これはソース追ってみても、無いからバージョン上げないと無理っぽ。
ていうか、これができれば進みそうなんだけどなぁ...
結局、7.2.8では断念しました。
じゃあ、最新版の8.2.0とかでは動くのか?とやってみたところ、インストール自体はほぼ問題なく
できたんですが、動作検証がダメでした...。
なんかマニュアル通りやってもトリガーの部分が日本語文字列だとスルーしちゃって、
肝心のkakasiの分かち書きがトリガーで更新されて入ってこないんです...。
英文だとできてるんだけどなぁ...。うーん。ダメか。
↓一応参考になりそうな記事はこちらですかね。
http://itpro.nikkeibp.co.jp/article/COLUMN/20061122/254458/?ST=oss&P=1