как получить рейтинг на основе того, сколько слов соответствует вводу пользователя

В своем запросе я в основном пытаюсь использовать полнотекстовый поиск для этой поисковой системы. Когда пользователь вводит элемент, запрос проверяет, совпадают ли какие-либо поля в моей таблице mysql.

Например, скажем, пользователь вводит в «iPad» , Моя таблица может иметь поля «заголовок», «описание», «ключевые слова»; и "ссылка":

Мой стол может иметь:

 Apple, which contains the term iPad once in the description
 iOS 6, which contains iPad say twice, in the description and title (these are examples)
 and iPad, which contains the term 'iPad' in the link, description, title and keywords.

Сначала показывается третий результат шоу, затем ранг 2, а затем id 1.

Но, скажем, я хочу ввести «купить iPad», запрос делает то же самое, но проверяет оба слова вместе. Если никакие заголовок / описание / ссылка / ключевые слова не могут найти два слова вместе в поле, тогда он находит самый высокий рейтинг первого слова, используя метод, который я показал выше.

   Apple Store -> which contains the terms Buy and iPad in the title field

Если совпадений не найдено, просто определите ранг каждого отдельного слова и ранжируйте их по нему.

$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 ('".implode(' ',$terms)." IN BOOLEAN MODE') ";
}

Ответы на вопрос(0)

Ваш ответ на вопрос