次の列を持つ MySQL テーブルがあります。
City Country Continent
New York States Noth America
New York Germany Europe - considering there's one ;)
Paris France Europe
タイプミスのある「New Yokr」を見つけたい場合は、MySQL ストアド関数を使用すると簡単です。
$querylev = "select City, Country, Continent FROM table
WHERE LEVENSHTEIN(`City`,'New Yokr') < 3"
ただし、ニューヨーク市が 2 つある場合は、全文検索で「ニューヨーク州」と入力すると、目的の結果が得られます。
問題は、"New Yokr Statse" を検索して同じ結果を得ることができるかどうかです。
レーベンシュタインとフルテキストをマージしてオールインワンのソリューションを作成する機能はありますか、または 3 つの列を連結する MySQL に新しい列を作成する必要がありますか?
lucene や Sphinx (soundex、metaphone でも有効ではありません) などの他のソリューションがあることは知っていますが、それらを実装するのはちょっと難しいと思います。