2009-07-29 10 views
7

映画が掲載されているサイトがあります。映画を探すときに間違ってスペルミスをしたり、タイトルに数字を記入するための文字を使用する映画がいくつかあります。php/mysqlの検索に入力ミスを実装する最良の方法は何ですか?

これらのエラーを見落とすように検索スクリプトを取得するにはどうすればよいですか?おそらくWHERE mov_title LIKE '%keyword%'より少し知的なものが必要でしょう。

私はフルテキスト検索エンジンを使用することを提案しましたが、それらのすべてが実際に複雑に見え、私のアプリケーションにそれらを構築することは地球上の地獄のように感じます。私が1つを使用しなければならない場合、最も侵襲的ではないものは、既存のコードに実装するのが最も簡単です。

答えて

6

私は外部の全文検索エンジンを実装する必要があると思います。 MySQLは全文検索ではあまり良くありません。私はあなたにLucenetutorials)を与えるべきだと言いたい。 Zend Framework has an APIがLuceneに接続されているため、学習して利用することが容易になります。

+0

Luceneには誤植が組み込まれていますか? sphinxsearchはどうですか? –

+1

はい、Luceneはファジー検索クエリをサポートしています。アルゴリズムはLevenshtein距離に基づいています。 Java APIは次のようになります。http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/search/FuzzyQuery.html – PatrikAkerstrand

+0

Lucene以外の方法はありますか? –

0

私はphpもmysqlも使用していませんが、フルテキスト検索の代わりにsoundex searchesがあります。

+0

mysqlはデフォルトでsundexをサポートしています – Sethunath

1

MySQLを使用していると推定します - MySQLにはこれを実行できる組み込み機能はありません。

これは、フルテキスト検索を自分で実装するか、サードパーティフルテキスト検索ツールを使用する必要があることを意味します。

  • あなたはそれを自分で実装する場合は、すべてのあなたのブラックレター表現を格納するために、metaphoneまたはdouble metaphoneアルゴリズム(私は仕事のこのタイプでほぼ同じ良いされていない、同音の上にそれらをお勧めします)になります言葉。しかし、あなた自身の全文検索を構築することは、かすかな心のための仕事ではありません。自分自身をデータベースウィザードとみなさない場合は、試行しないでください。
  • サードパーティのツールを使用する場合は、Luceneがおすすめです。それは異なる言語/プラットフォームのトンに移植されていますincluding PHP - あなたはJavaを使用する必要はありません。
関連する問題