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()を正しくサポートしてないと駄目。
ほとんどテストしてないので壊れる可能性は大ですので、一応用心を。
コメント