私のちょっとした個人的なプロジェクトは、外部ソースを使用せずに検索エンジンをゼロからやみくもに作成することです。これは主に学習体験のためであり、ジレンマと困難な問題の両方を抱えている今まで、あまり問題はありませんでした。
このケースを観察してください:
Suzy は "fuzzy bears" を検索したいと考えています。これは問題ありません。可能な限り機能します。しかし、スージーは台無しにして「fuzzybears」と入力します。現在、これは複数のトークンではなく単一のトークンとして解釈されるため、私の検索アルゴリズムは機能しません。このようなランオンタームまたはくっついたトークンが 1 つでも出現する単語のケースまたは組み合わせは、検索結果の質を低下させます。
スコープのために、これは C# と T-SQL の組み合わせを使用して書いているものです。
私は複数の解決策を試しましたが、実際には何も得られませんでした。まず、リストを使用して用語を取得し、バリエーションを作成しましたが、これは私の好みでは遅すぎ、必要以上に多くのメモリを必要としました。
統計のために検索クエリをデータベースに保存し、おそらくアルゴリズムを有機的に成長させることについてもっと学びたかったので、SQLでこれらの接着されたトークンを処理する方法が解決策になるかもしれませんが、そのようなものから始める方法がわかりませんカーソルまたはその他の遅いソリューションを使用しない限り。
検索してデータベースに保存し、いくつかのトークンが接着されたさまざまな組み合わせを作成し、それらの接着されたトークンを用語としてヒットさせることができますか? このソリューションの問題点は、かなりのスペースを占めることと、このようなスペル ミスはあまり一般的ではないため、常にこれらの文字列が必要になるとは限らないことです。
主に、私が必要としているのはスピードです。きれいである必要はありませんが、高速で正確であれば、多くのディスク容量を占有しても満足です。
ここで解決策を求めているわけではありませんが、誰かが私が行くことができる方向に私を向けることができれば、それは大歓迎です.