私は解決する必要がある検索パズルを持っていますが、私のスキルセットは最小です。私はこれをうまく説明しなければ謝ります。例えば、ユーザが「21いくつかのストリート、エセックス」と対応の「リーズいくつかの場所」を提出し、場合PHPファジィ検索2列とベストマッチを返します
| Start address | End address |
-----------------------------------------------
1 | Essex | Moortown, Leeds |
2 | Place A, London | Place B, Manchester |
3 | Townsville, Essex | Leeds Town Hall |
4 | Essex Trading Estate | Another Leeds Estate |
5 | Somewhere, Devon | Yeoville |
6 | ... | ... |
:問題を試してみて、証明するために、ここでは2つのデータベース列のデータの一例です私はMySQLのデータベースを検索し、最上位のX個のベストマッチを取り戻す必要があります。この例では、行1,3,4はすべて第1列のEssexと第2列のリーズを含みます。
PHPにはsimilar_text()とlevenshtein()の2つの関数がありますが、これは助けになるかもしれませんが、どのような部分マッチングが適切か、の検索結果。私はMySQLの中で似たようなものは見つけていません。
これを経験した人は誰でも私に何か指示を与えることができますか?必要な検索出力を得るために、関数のように、簡単な使用することができます
乾杯
アンディ
両方のフィールドに「FULLTEXT」複合インデックスを入れ、MySQLの自然言語検索を使用することができます:https://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html – CD001
MySQLの[全文検索](https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html)機能を使用して調べることができます。 –