最後の1文字を独立して切り出さないようにしたのは、
特定の状況下で文書がヒットしない問題が発生するためです。
たとえば、「かきつばた」というテキストに対して、「かき」という検索語で
検索してもヒットしません。
テキストおよび検索語は、それぞれ以下のようにトークナイズされますが、
・検索対象テキスト
テキスト: かきつばた
トークン: かき(0,2) きつ(1,3) つば(2,4) ばた(3,5) た(4,5)
・検索語
テキスト: かき
トークン: かき(0,2) き(1,2)
検索語のトークン列(かき、き)は検索対象テキストのトークン列中に現れないため、
ヒットしないのです。
この問題は、インデックス時には、末尾の1文字を切り出すトークナイザを利用し、
検索時には切り出さないトークナイザを利用することで回避できる…ように思うのですが、
本当にそうなのか考えるのが面倒だったので、元の動作に戻してしまいました。
何かいいアイデアをお持ちであれば、ぜひご教示ください。
2009/08/18 16:53 に Shinya Kasatani<kasa...@gmail.com> さんは書きました: