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の照合順序使っている人には影響が結構ありそうですね。。) 以上、よろしくお願いします。