任务单 #11620

fulltextb使用時に「0」の検索が出来ない
开放日期: 2008-01-09 16:11 最后更新: 2008-01-10 10:55

报告人:
属主:
(无)
类型:
状态:
开启
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
文件:

Details

■環境
Redhat Enterprise Linux 4 U5
ludia 1.4.0 (mecab-0.96 ipadic-2.7.0 senna-1.0.9
postgresql 8.2.4

■DB
table : id int4(主キー),data text
index : fulltextb

■データ
id=1 : data=01

■現象
table.dataを「0」で検索してもヒットしません。

fulltextbのインデックスに対して1文字の検索を実行した場
合、
完全一致検索ではヒットしない為、部分一致検索が走りヒッ
トすると予想したのですが
ヒットしませんでした。

検索文字列が「1」ではヒットし
id=1 : data=AB 検索文字列「A」
などでもヒットするので検索文字列「0」の挙動が怪しいで
す。

以上、よろしくお願いします。

任务单历史 (1/1 Histories)

2008-01-10 10:55 Updated by: co-saka
评论
Logged In: YES
user_id=23292

こちらでは、以下のデータで試してみました。
id=1 : data=あ01い
id=2 : data=う10え
0で検索すると、「あ01い」がヒットし、
1で検索すると、「う10え」がヒットします。
(確実にインデックススキャンさせるために、
 set enable_seqscan to off; としています。)

fulltextbの場合は、英数字・記号は分割されません。
上記の例では、「あ、01、い」と分割され、
それぞれに対して、前方一致検索が行われます。
ssnさんの意図しているように数字を分割して検索したい場合、
fulltextuを用いて、SEN_INDEX_SPLIT_DIGITを使用します。
http://ludia.sourceforge.jp/cgi-
bin/moin.cgi/LudiaReadme#id19

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名