みんな大好きPostgreSQLにSennaを組み込むLudiaのREADME見ながらひととおりやったときのメモ
インデックスアクセスメソッドの登録
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を行わないので大丈夫なハズ
最近のLudiaはVACUUM FULLやCLUSTERに対応しており、特にREINDEXを必要としない
2個のコメント
最近のLudiaは、VACUUM FULLやCLUSTERに対応していますよー。
おお、Ludiaの中の人だ!
既に対応されていたのですね、古い情報流しちゃってすいませんです
まだまだいじり倒してみま〜す