Я пытаюсь сделать небольшую поисковую систему для своего сайта. Прежде всего, типа пользователя в некоторых ключевых словах и перейти к странице результатов, которые используют этот код:Сортировка результата sql по наличию набора ключевых слов
$result = array();
$keyword_tokens = explode(' ', $keywords);
$keyword_tokens = array_map(
function($keywords) {
return mysql_real_escape_string(trim($keywords));
},
$keyword_tokens
);
$sql = "SELECT * FROM search_table WHERE concat(title, description) LIKE '%";
$sql .= implode("%' OR concat(title, description) LIKE '%", $keyword_tokens) . "%' ORDER BY instr(description, '$keywords') DESC, instr(title, '$keywords') DESC";
$result=mysql_query($sql);
Этот код позволяет искать ключевые слова, запрашиваемых пользователем и сортировать по $ ключевых слов, так по полной точной строке группа ключевых слов ...
То, что я пытаюсь сделать, - упорядочить результаты по наибольшему количеству каждого ключевого слова. Например, если строка моего sql-результата содержит 5 ключевых слов, а другая - 3 и т. Д., Сначала должны появиться 5 ключевых слов. Я ищу, чтобы отсортировать результаты, выбрав большее количество ключевых слов.
Надеюсь все понятно ...
Помощь будет очень признателен!
Возможно, посмотрите на полнотекстовые индексы – Strawberry
. Я не получил ваш вопрос ?? .. если пользователь вводит ключевое слово, и наиболее типичный результат должен быть первым? ?. это то, что ур? –
Привет, пользователь выбирает $ ключевые слова в форме, которая отправляется на страницу поиска. Я ищу, чтобы отсортировать результаты, выбрав большее количество ключевых слов. – jpsFR