-1

PHP と MySQL を含むプロジェクトに取り組んでいます。私は両方にかなり慣れていないことを認めます。

いくつかの会社名を含むテーブルがあります。たとえば、CocaCola としましょう。ユーザーが CocaCola を検索した場合、テーブルから情報を読み取る必要があります。私の質問は、ユーザーが CocaCola Company やその他の一致するものを書いたとしても、どうすればそれを機能させることができるでしょうか?

基本的なエラー処理を提供する SOUNDEX を既に実装していますが、テーブル内の名前 (CocaCola) がユーザーからの文字列と一致するかどうかを確認できるものが必要です (「CocaCola Company」には「CocaCola」が含まれます)。 .

「LIKE」文を見つけました

 WHERE Name LIKE %$name%

ユーザーが何かを書いているかどうかを検出できますが、ユーザーが何かを書いているかどうかを検出するにはどうすればよいですか? (何かのようなもの

WHERE %Name% LIKE $name

存在する場合)。

4

1 に答える 1

0

ユーザーの書き込みが少ないことを本当に確認したい場合は、検索文字列の長さを確認する句を作成しないでください。たとえば、12 文字以上の場合は、SUBSTRING関数を使用して、ユーザーが入力した最初の 8 文字を検索します。

WHERE NAME LIKE CONCAT('%', SUBSTRING($searchString, 8), '%')

あなたのプロジェクトは、堅牢な検索ライブラリから本当に恩恵を受けることができるようです。Apache Luceneに似たライブラリまたはプラグインを調べてみましたか? Lucene が Java で書かれていることは知っていますが、調べてみると、プロジェクトに適した言語で書かれた強力なプラグインを見つけるのに役立つかもしれません。

于 2015-07-24T16:18:08.003 に答える