Daisuke Yamazaki
yama****@scale*****
2009年 10月 23日 (金) 21:53:13 JST
株式会社スケールアウト 山崎と申します. Ludiaを使ったシステムを構築しているのですが,検索に対して漏れが あるようで調査をしております. データなどの再現方法を表に出せないため,検索漏れがある際の調査方法を 模索しております.さらに詳細な調査を行う方法やヒントがあれば教えて もらえると幸いです. 下記本現象が起きる環境と http://sourceforge.jp/projects/ludia/lists/archive/users/2008-March /000190.html 始まるスレッドを参考に試行錯誤した内容になります. 0. 環境 CentOS release 5.2(x86_64) PostgreSQL 8.2.11 ludia 1.5.1(pgs2version()より) senna 1.1.4 (pgs2seninfo()より) インデックスの作成方法 fulltextb() CREATE INDEX idx_senna_items_name ON items USING fulltextb((name::text)); 1. クエリ内容 SELECT * FROM "items" WHERE (items.name @@ E'"xxx"') ; xxxは3文字の日本語でUTF-8になります. 2. クエリ結果 一部返ってきて欲しいレコードが返ってきません. 69件返ってきて欲しいところ 57件 3. REINDEXをテーブル,DBともに行った結果 複数回行いましたが,変わりませんでした. 4. DROP INDEX, CREATE INDEXを行った結果. DROP indexを行った場合,クエリは正しく返ってきました.ただこれは インデックスがないことによるシーケンシャルスキャンの結果だと思われます. またCREATE INDEXをやり直しても結果は同じでした. こちらも複数回行いました. 5. データベースの再作成 vacuumがらみの可能性を排除したかったので,dropdbを行い, DBを再作成しました.こちらも結果は同じでした. 以上,よろしくお願いします. -- 株式会社 スケールアウト 代表取締役社長 山崎大輔 Daisuke Yamazaki <yama****@scale*****> Blog:最速配信研究会 http://d.hatena.ne.jp/yamaz/