Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 全角文字のフレーズ検索のバグ



寺西です。

Tadamasa Teranishi wrote:
> 
> 例えば http://www.namazu.org/ で {開発 環境} で検索すると、
> 
> References: { [ 開発: 51 ] [ : 0 ] [ : 0 ] [ 環境: 17 ] :: 0 }
> 
> のような結果になります。真ん中に単語と誤認されたコードがあり、
> これが 0 件のためヒットしません。

同様の不具合(?)が半角文字でも発生しました。
http://www.namazu.org/ で、 {Red  Hat} とスペース2文字で文字列
を分けると、
References: { [ red:4 ][ : 0 ][ hat: 4 ] ::0 }
のような結果になり、ヒットしません。{Red Hat} は大丈夫です。

フレーズ検索で、複数のスペースで区切るのが仕様外と考えることも
できますが、やはり複数のスペースで区切ってもきちんと動いた方が
良いでしょう。

> 内部ではフレーズ検索の場合、単語と単語の間は '\t' で区切られる
> ように処理されています。

同様に '\t' を複数連結してしまっているようです。

> 本来ですと、わかち書きの部分を修正するべきところですが、
> nmz/search.c (do_phrase_search) の単語を取り出す部分を
> 修正することで対応しました。

この修正を行っていますので、stable-2-0, HEAD では半角フレーズの
問題は発生しません。
こちらも本来は、スペースを '\t' に変換する部分で、'\t' を複数
連結しないように処理するべきだとは思います。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E