検索ボックスに入力されたキーワードに基づいてデータベース エントリを検索するためのこのクエリがあります。
// function to get search keywords from url
$q = furl($_GET['q']);
$sExp = preg_split('/\s+/',$q);
$secure_keywords = array();
foreach ($sExp as $key=>$keyword){
if (strlen($keyword) >= 3){
// cut off words that are less than 3 chars
$secure_keywords[] = $keyword;
}
}
$kwords = count($secure_keywords);
foreach ($secure_keywords as $key=>$keyword)
{
// function to prevent sql injection
$keyword = sql_proof($keyword);
$query="SELECT * FROM listings WHERE MATCH (meta_keywords) AGAINST ('$keyword' IN BOOLEAN MODE) ORDER BY id";
}
2 つ以上の単語が使用されている場合、少なくとも 1 つの単語のスペルが間違っていると、クエリは結果を返しません (入力したキーワードの残りの単語に対して結果が存在する場合でも)。たとえば、「良い」という単語を入力すると、少なくとも 1 つの結果が得られますが、「良い点」を使用すると、クエリは結果を返さないため、「良い」という単語に一致する結果は完全に無視されます。入力したキーワードに少なくとも 1 つの一致する単語がある場合、クエリが結果と一致する方法はありますか? ありがとう