みんな大好きPostgreSQLにSennaを組み込むLudiaのREADME [1]見ながらひととおりやったときのメモ

インデックスアクセスメソッドの登録
RPM版のpostgresqlにインストールしたときには、Ludiaの登録に使用するファイルは
/usr/share/pgsql/pgsenna2.sql
になる
インストールはpsql内から
mydb=# \i /usr/share/pgsql/pgsenna2.sql
でOK
分かち書きより2-gramがいいかも
たとえば
-まだまだ
-まだまだまだ
-まだまだまだまだ
を、「まだ」で検索すると、分かち書きだと2つめしかヒットしない
スコアの取得
pgs2getscore(TABLE.ctid, ‘indexname’)
だが、ここでctidはレコードの物理位置TIDを表すもので、全てのテーブルで同じ書き方で良い
スコアが全て0になるときは、下記REINDEXを行う必要があると思われ
REINDEXが必要
sennaインデックス内ではレコードのTIDを保持している
TIDはVACUUM FULLやCLUSTERで変更されるため、そういう時はREINDEXが必要
ちなみにautovacuumはfull vacuumを行わないので大丈夫なハズ

[1] https://sourceforge.jp/projects/ludia/

投稿者: ほそいりょすけのほめぱげ 投稿日時: 2007年10月18日(木) 22:04