Как использовать MySQL MATCH AGAINST IN BOOLEAN MODE, чтобы вернуть результаты хотя бы для одного соответствующего ключеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как использовать MySQL MATCH AGAINST IN BOOLEAN MODE, чтобы вернуть результаты хотя бы для одного соответствующего ключе

Сообщение Anonymous »

У меня есть этот запрос для поиска записей базы данных на основе ключевых слов, введенных в поле поиска.

Код: Выделить всё

// 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 результат, но если я использую «хороший момент», запрос не возвращает никаких результатов, поэтому он полностью игнорирует результаты соответствия для слова «хорошо».
Есть ли способ запроса сопоставить результаты, если во введенных ключевых словах есть хотя бы одно подходящее слово? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/194 ... at-least-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»