5

次の列を持つ 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 でも有効ではありません) などの他のソリューションがあることは知っていますが、それらを実装するのはちょっと難しいと思います。

4

1 に答える 1