1

この質問は少なくとも1000回は聞かれていると思いますが、聞いてください。

私は、自分の本の交換サイトで販売されている本を検索するために使用されるMySQL用のPHPスクリプトを作成しました。このチュートリアルを使用して、全文検索スクリプトを作成しました。ほとんどの場合、このチュートリアルはうまく機能します。私と私のユーザーの何人かがしがみつく2つの本当の大きな問題があります:

  1. たとえば、特定の商人を名前で検索するとSteve Miller、スクリプトは、の名前、のSteve MillerSteve、およびの名前を持つすべての人を返しますMiller。ご想像のとおり、スクリプトはかなりの数の偽の結果を返します。ofまたはなどの本のタイトルに含まれる一般的な単語ではさらに悪化しますが、theこれらの単語を含むすべての本が返されるわけではありません。
  2. 単語全体を入力した場合にのみタイトルを提案できる自動提案機能があります。たとえば、を検索しThe Univeても何も提案できませんが、をThe Universe提案できますThe Universe Next Door

質問: MySQLデータベースで複数のリレーションを使用して検索できる確立されたスクリプトまたはフレームワークはありますか?サイト全体ではなく、データベース内の特定の関係と外部キーの関係を検索しているため、Googleカスタム検索のようなものを使用することはできません。

お時間をいただきありがとうございます。

4

2 に答える 2

2

MySQLデータの検索としてIndexDenを使用することにしました。彼らはあなたがあなたのデータベースの構造に合うように特別にフォーマットすることができるデータを送ることを可能にするPHPAPIクラスを持っており、あなたがそれを送るデータの特定の「属性」を検索するために彼らのサービスを使用します。

また、優れたオートコンプリートサービスも提供しています。

于 2013-01-25T15:44:29.037 に答える
1

自動提案が逆方向になっているようで、逆の結果が得られるはずです。誰かがUnivと入力すると、The UniverseNextDoorが返されます。これが自動提案/完了の目的です。そして、問題#1まで。誰かが検索している場合、探している結果が表示されるまで文字を入力し続けるという、ある種の静かな知識があります。実際に彼らが「スティーブ」だけを探しているなら、彼らは「スティーブ」へのすべての言及を知りたいか、彼らはただ怠惰です。彼らがSteveMillと入力した場合、SteveMillとSteveMillerが返されますが、Steve Milworksは返されません。これは、名が一致しているが、ユーザーがSteveよりも少し具体的なものを探しているためです。

于 2012-12-22T18:19:35.680 に答える