Yamada Takuji
yamad****@media*****
2007年 12月 14日 (金) 18:59:09 JST
こんにちは、山田です。 非常に分かりにくい表題で申し訳ありません。 以下、現象の説明と、ご質問をさせていただきます。 [環境] PostgreSQL 8.1.9 Ludia 1.1.0 Senna 1.0.5 [現象] (1) fooテーブルのkeywordカラムに、下記の条件でindexを作成します。 FOO_DB=> set ludia.sen_index_flags = 18; --# SEN_INDEX_NGRAM|SEN_INDEX_SPLIT_ALPHA FOO_DB=> create index foo_idx on foo using fulltextu (keyword); (2) fooテーブルのkeywordカラムに検索データを1件登録します。 FOO_DB=> insert into foo (keyword) values ('青ノ時代'); (3) fooテーブルを'青'で検索すると、上記の「青ノ時代」がヒットします。 FOO_DB=> select * from foo where keyword @@ '青'; (4) 次にfooテーブルにもう1件データを登録します。 FOO_DB=> insert into foo (keyword) values ('群青'); (5) 再度fooテーブルを'青'で検索すると「群青」はヒットしますが、 「青ノ時代」がヒットしなくなります。 ('青ノ'で検索すればヒットします) [質問] 最初は'青'で検索できたデータが、途中で別データを追加したらヒットしなくなるのは、 変な気がするのですが、indexの作成方法が間違っているのでしょうか? もしくは、これがsennaとしては正しい動作になるのでしょうか? 期待している動作としては、'青'で検索したときに「青ノ時代」も「群青」も どちらもヒットする、というものです。