1
我創建了一個使用PHP/MySQL布爾模式的全文搜索。它運行完美,相關性排名和索引分配給相關數據庫字段。該數據庫包含兩個表:分配搜索結果到一個變量 - PHP的全文搜索布爾
業務 - >名稱,描述,聯繫方式,地址,serialid
* SEARCH_TERMS * - >而言,querytime,date_searched,結果。
然後現在,我想所有的搜索結果,並將其分配給一個變量($結果)。此$結果將與術語querytime和date_searched一起存儲到search_term表中。
這裏是我的代碼(沒有$結果)
function search($term){
$term = mysql_real_escape_string($term);
$startTime = microtime(true);
$query = mysql_query("SELECT *, MATCH (Name) AGAINST ('+$term*' IN BOOLEAN MODE) AS rel1, MATCH (Description) AGAINST ('+$term*' IN BOOLEAN MODE) AS rel2, MATCH (Keywords) AGAINST ('+$term*' IN BOOLEAN MODE) AS rel3 FROM business WHERE MATCH (Name,Description,Keywords) AGAINST ('+$term*' IN BOOLEAN MODE) ORDER BY (rel1*0.60)+(rel2*0.25)+(rel3*0.15) DESC") or die(mysql_error());
$endTime = microtime(true);
$queryTime = substr($endTime - $startTime, 0,6);
if(mysql_num_rows($query) == 0){
echo "<p>No results found for <i>". $term ."</i></p>";
}
else{
while($row = mysql_fetch_assoc($query)){
echo "<h4><a href='viewBusiness.php?serial=" . $row['SerialId'] . "'>" . $row['Name'] . "</a></h4>";
$desc = substr($row['Description'], 0,100);
$score = $row['rel1'] + $row['rel2'] + $row['rel3'];
echo "<p>" . $desc .". . .</p>";
}
$numOfResult = mysql_num_rows($query);
echo "<hr/><p><b>" . $numOfResult ." </b>result(s) found within " . $queryTime . " seconds.</p>";
$ip = $_SERVER['REMOTE_ADDR'];
$query2 = mysql_query("INSERT INTO search_term(Term, QueryTime, Ip) VALUES('$term', '$queryTime', '$ip')") or die(mysql_error());
}
}
我在PHP的新手,這是我的第一個應用程序。非常感謝你的幫助!
這幫了我很多人!非常感謝! – 2011-12-15 13:22:49