[groonga-dev,02110] Re: NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMarkがノーマライズした記号が意図したとおりトークナイズされない

Naoya Murakami visio****@gmail*****
2014年 2月 5日 (水) 21:17:48 JST


お世話になっております。村上です。

このあたり、ちょっと前にノーマライザをさんざんいじったので、原因がわかりました。

以下で、ノーマライズ後のctypeを取得するんですが、ノーマライズ前の文字の長さ
character_lengthを引いているので、元に戻しすぎて、誤った位置のctypeを取得
しています(symbolであるべきところがdigitに)。

https://github.com/groonga/groonga-normalizer-mysql/blob/master/normalizers/mysql.c#L372

この前のchecks対応で追加したノーマライズ後の文字の長さnormalized_character_length
で引けば、適正な位置のctypeになり、TokenBigramが期待通りの挙動になることを
確認できました。

開発者の方ならすぐわかることだと思うのですが、一応ご報告します。

(これ、トークナイズ位置が誤っているので、TokenBigramでMroongaをつかっていて、
utf8の照合順序使っている人には影響が結構ありそうですね。。)

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



groonga-dev メーリングリストの案内