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

アーカイブの一覧に戻る

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




Senna-dev メーリングリストの案内
アーカイブの一覧に戻る