私は問題を抱えています。些細なことに聞こえるだけでなく、(私にとって)簡単でスケーラブルでパフォーマンスの高いソリューションを見つけるのは簡単ではありません。ウェブサイトのユーザーが場所を検索できる入力テキストが 1 つあります。
現在、場所は都市、都市の住所、または都市の近隣であり、ユーザーはカンマを使用して都市から住所または近隣を区切る必要があります。その後、文字列を分割して、最初のブロックは、住所、近隣または都市です。ユーザーが入力に必要なすべての情報を入力するのに失敗し、都市なしで住所を入力し、同じ名前の複数の通りに一致した場合、正しい場所を選択できるようにすべての場所を表示します。
検索ログを使用すると、すべてのツール ヒントで場所検索の使用方法が示されていても、ほとんどのユーザーがコンマを使用していないことがわかります (thx google :p)。
そのため、次のようなカンマで区切られていないアドレスを受け入れるために、ロケーション検索の新しい要件が必要です。
1. "5th Avenue"
2. "Manhattan"
3. "New York"
4. "5th Avenue Manhattan"
5. "5th Avenue Manhattan New York"
6. "Manhattan New York"
7. "5th Avenue New York"
しかし、各ブロックの意味を見つける方法や、これを機能させる動的な方法を見つけることができません。つまり、"New Yok" のような文字列を取得した場合、"new" は住所、"york" は都市になります。
私の質問は、私が必要とするものを達成するためのある種のテクニックまたはフレームワークがありますか、それとも具体的にそれを行うために (単語数、コンマなどに基づいて) アルゴリズムで自分のやり方で作業する必要がありますか?
編集1:
私はSQL Serverを使用しているため、全文検索の複数列検索を考えており、前に完全一致を行い、後で完全一致ではありません。しかし、一部の不完全なアドレスは数千行を返すと思います。