(最新版の説明はこちら


pg_rastは出てるのにpg_sennaは出てないのはアレなんで、アーキテクチャはpg_rastのようにしてpg_senna作った。



http://dev.razil.jp/svnweb/pg_senna/browse/trunk/



結構色々と制限があって、(1) postgresql-8.x のビルドツリーが必要 (2) Makefileの中身を変更してtop_builddirを(1)のツリーに指定しなくてはいけない (3) postgresqlそのものにインテグレートしてるわけではないので呼び出し方がダサい。


・・・というわけなんだけど、とりあえず作れます:



svn co svn://dev.razil.jp/pg_senna/trunk pg_senna
cd pg_senna
vi Makefile <-- top_builddirを変更
make && make install

その後、データベースにpsqlでアクセスして



\i /path/to/pg_senna/src/pg_senna.sql
SELECT pg_senna_create_index('/path/to/index', 'tablename', 'primary_key', 'text_column');

すると、トリガーとかが作成されてインデックスの更新がされるようになる。その後(ここがかっこわるい部分なのだが)検索するには



SELECT * FROM tablename WHERE primary_key IN (
SELECT * FROM pg_senna_search('/path/to/index', '検索文字列') )

とすればオッケー。まぁ色々問題はあるけどとりあえずpostgresqlでsenna検索をしたい人はどうぞ。senna本体はsen_index_info()を正しくサポートしてないと駄目。


ほとんどテストしてないので壊れる可能性は大ですので、一応用心を。