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*****>