[Senna-dev 718] 最初に検索できたデータが、別データを追加すると検索できなくなります

Back to archive index

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としては正しい動作になるのでしょうか?

期待している動作としては、'青'で検索したときに「青ノ時代」も「群青」も
どちらもヒットする、というものです。




Senna-dev メーリングリストの案内
Back to archive index