0

検索エンジンを構築しています。ユーザーが私のエンジンに検索を入力すると、私のスクリプトはステートメント内の単語のみを実際にチェックし、それらがキーワードに一致する場合...結果が返されます。しかし、iPad が検索され、Apple の方が上位であるため、Apple.com で iPad の公式 Web サイトの前に返された場合はどうなるでしょうか。全文検索を使い始めましたが、まだ少しエッジが効いています。何か案は? 

$query = " SELECT * FROM scan WHERE ";

$terms = array_map('mysql_real_escape_string', $terms);
$i = 0; 
foreach ($terms as $each) {
    if ($i++ !== 0){
        $query .= " AND "; 
    }
    $query .= "Match(title, description, keywords, link) Against ('%{$each}%') ";
}
4

1 に答える 1

0

全文検索を行う場合、各キーワードを where 句の独自の「照合」ステートメントに追加する必要はありません。あなたはただ言うことができますMatch(title, description, keywords, link) Against ('ipod apple')。「反対」部分の各単語の照合を行い、それに応じてランク付けします。「+」( ) などのキー記号を使用してその単語を結果で必須にする、「-」( ) でその単語を結果で許可しないようにするなどのキー記号を使用して、特定の単語に重み付けできるブール一致を実行することもできます。+SomeWord-SomeWord

于 2012-09-28T17:33:35.310 に答える