Tasuku SUENAGA
a****@razil*****
2007年 12月 14日 (金) 20:27:45 JST
末永と申します。 Senna 1.0.7以降ですと指摘の問題は起こらないと思います。 バージョンアップをお勧めいたします。 もしくは、岩崎さんがご指摘されたように、 '*E10 青'としたり、 '*E-7 青'としたりするとよいでしょう。 Yamada Takuji さんは書きました: > こんにちは、山田です。 > 非常に分かりにくい表題で申し訳ありません。 > 以下、現象の説明と、ご質問をさせていただきます。 > > [環境] > 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としては正しい動作になるのでしょうか? > > 期待している動作としては、'青'で検索したときに「青ノ時代」も「群青」も > どちらもヒットする、というものです。 --- Tasuku SUENAGA <a****@razil*****>