[Ludia-users 142] 複数のテーブルに対する全文検索について

Back to archive index

ssenou sseno****@techn*****
2007年 12月 13日 (木) 11:26:56 JST


瀬能です。
お世話になっています。

質問があるのですが、
複数のテーブル(text型カラム)に対する複数の@@検索を実行すると
必ずシーケンシャルスキャンになってしまうのですが、
複数のテーブル(text型カラム)に対する複数の@@検索は想定していない仕様ですか?
(SQL文で対応出来ない事もないですが、できるだけ自由な記述をしたいと思っているので…)
また、回避方法などあれば教えてください。

以上よろしくお願いします。

■環境
Redhat Enterprise Linux 4 U5
ludia 1.4.0 (mecab-0.96 ipadic-2.7.0 senna-1.0.9
postgresql 8.2.4

■設定
postgres.conf
・ludia.max_n_sort_result = 100000
・ludia.enable_seqscan = off
・ludia_sen_index_flags = 31
・ludia.max_n_index_cache = 16
・ludia.initial_n_segments = 2048
・ludia.usegenericcost = on or off共に

■DB
・table1(構成)  : id(key) int4,data text
・table2(構成)  : id(key) int4,data text
・table1(DATA)  : id = 1,data = "TEST"
・table2(DATA)  : id = 1,data = "TEST"
・table1(INDEX) : fulltextb
・table2(INDEX) : fulltextb

■現象
SELECT * FROM test1,test2
WHERE table1.data @@ 'TEST' or table2.data @@ 'TEST'

と実行すると

"Nested Loop  (cost=0.00..2.04 rows=1 width=24)"
"  Join Filter: ((table1.data @@ 'TEST'::text) OR (table2.data @@ 
'TEST'::text))"
"  ->  Seq Scan on table1  (cost=0.00..1.01 rows=1 width=12)"
"  ->  Seq Scan on table2  (cost=0.00..1.01 rows=1 width=12)"

とシーケンシャルスキャンになってしまいます。 




Ludia-users メーリングリストの案内
Back to archive index