Postgresql8.2の全文検索機能
http://itpro.nikkeibp.co.jp/article/COLUMN/20061122/254458/?ST=oss&P=1
テストに使ったデータは,PostgreSQLの英語,日本語メーリングリストを取り混ぜた約8万8千件のデータで,ファイルシステム上では630Mバイトの容量がある。
テストに使ったのは Opeteron 2.3GHzのCPUを2個搭載したマシンで,実装メモリは8GB,OSはMiracle Linux 4.0を使用した。
気になるデータ登録に要する時間は36分30秒だった。試しにnamzuで同じデータのインデックスを作成したところ,1時間9分37秒もかかった。
まずは「PostgreSQL」を含む文書の検索である。
test=# SELECT count(*) FROM gin WHERE query('PostgreSQL') @@ wakachi;
count
- -
24600
(1 row)Time: 16.207 ms
このように,16ミリ秒ほどで結果が得られた。namazuでは24ミリ秒かかった。
結構速いな…50万件や100万件ではどれくらいのパフォーマンスになるのだろうか、一度ベンチマークやってみようかなあ。
DB統合型の全文検索エンジンは、多種多様な検索式が自由度高く組めるのでとても良い。インデクス作業自体も高速に行えるし。
速度的に単体の全文検索エンジンと張り合えるならば、良い感じだなあ。
ただ、分かち書きをしたデータが登録時には必要になるなど、前処理をしなければならない(インデクサを作らないといけない)のはちょっと面倒くさいかな。