Siccome é una necessità abbastanza comune ho scritto una funzione.
La pubblico, se a qualcuno dovesse servire...
Codice PHP:
<?php
// Funzione di ricerca che restituisce i risultati in ordine di affinità con la chiave immessa
function Search ($key)
{
//Definizione di valori costanti
$fulltext = "campi fulltext da analizzare separati da virgola"; // I campi da analizzare devono essere fulltext
$dblocation = "posizione del file di connessione al db";
$table = "nome tabella da esaminare";
include "$dblocation";
$sql = "SELECT *, MATCH($fulltext) AGAINST('$key' IN BOOLEAN MODE) AS tot FROM $table WHERE MATCH($fulltext) AGAINST('$key' IN BOOLEAN MODE) ORDER BY tot DESC";
return mysql_query($sql, $conn);
}
// Questa funzione calcola la percentuale di affinità
function CalcScore ($result, $key)
{
$key_array = explode(" ", $key);
$tot = count($key_array);
$score = intval($result / $tot * 100);
echo "$score%";
}
// ESEMPIO di utilizzo
//$key = "chiavi di ricerca ";
//$res = Search($key);
//
//while ($row = mysql_fetch_array($res))
// {
// echo CalcScore($row['tot'], $key) . "
";
// echo $row['data'] . "
";
// echo $row['var']) . "
";
//
// }
?>