taku miyamoto
taku_miyam****@dwang*****
2006年 9月 17日 (日) 10:41:00 JST
末永様 宮本です。 お返事が遅くなってしまい申し訳ございません。 また、インデックスに関する詳細なご説明をいただき、ありがとうございます。 > さて、N-gram時に「perl」という単語が > インデックスされているとしましょう。 > Sennaでは、アルファベット・数字・記号からなる単語について、 > 前方一致検索しか対応しておりません。 > それ以外の文字からなる単語は、 > 前方一致検索も後方一致検索も可能です。 > > よって、「per」では検索できますが、「erl」では検索できません。 > > 理由としては、 > 英単語は語尾の変更はよくあるが、 > 語幹の変更が少ないためです。 > インデックスサイズを減らし、 > 検索速度を向上し、 > さらにノイズが少ない検索を実現するために、 > ニーズが低いと考えられる単語については > インデックスしないようにしています。 こういった挙動をすることについては把握していたのですが、なるほどそのよう な理由があったのですね。 とても参考になります。 > 宮本さんがどのような用途にSennaを利用されるかにもよるのですが、 > 「型番に対する高速なLIKE検索を行いたい」、といった用途であった場合、 > Sennaの設計で想定していた問題領域と少しズレてしまいます。 まさにそういったものを考えておりました‥。 どういった形でSennaを利用させていただくのが最適か、いただいたご説明を元 に再考させていただきたいと思います。 > なお、Sennaの内部に手を入れれば、 > 完全なN-gramインデックスの作成も、 > アルファベット単語の後方一致検索も可能となります。 機会があればトライしてみたいですね。 とても詳細でわかりやすいご説明ありがとうございます。 いただいたご説明により、Sennaの開発・設計方針などを随分と明確に理解する ことができたと思います。 すばらしい検索エンジンとすばらしい御回答をいただきありがとうございます。