como ter classificação com base em quantas palavras correspondem à entrada do usuário

Na minha consulta, estou basicamente tentando usar a pesquisa de texto completo para esse mecanismo de pesquisa. Quando um usuário digita um item, a consulta procura ver se algum campo é idêntico na minha tabela mysql.

Por exemplo, digamos que um usuário digite "iPad". Minha tabela pode conter os campos "título", "descrição", "palavras-chave" e "link":

Minha mesa pode ter:

 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.

O terceiro resultado mostra ser classificado em primeiro lugar, seguido por rank 2 e, em seguida, id 1.

Mas digamos que eu queira digitar 'comprar iPad', a consulta faz exatamente o mesmo, mas verifica as duas palavras juntas. Se nenhum título / descrição / link / palavras-chave não puder encontrá-los juntos em um campo, ele encontrará a classificação mais alta da primeira palavra usando o método que mostrei acima.

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

Se nenhuma correspondência for encontrada, apenas determine a classificação de cada palavra individual e classifique-as por isso.

$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') ";
}

questionAnswers(0)

yourAnswerToTheQuestion