2010-03-08 201 views
1

我試圖在我的Intranet中使用mysql全文搜索。我想用它來搜索多個表格,並根據結果頁面中的表格獲得獨立的結果。PHP:如何使用mysql全文搜索和處理全文搜索結果

這是我爲搜索做的。

$query = " 
     SELECT * 
     FROM testtable t1, testtable2 t2, testtable3 t3 
     WHERE match(t1.firstName, t1.lastName, t1.details) against(' ".$value."') 
     or match(t2.others, t2.information, t2.details) against(' ".$value."') 
     or match(t3.other, t2.info, t2.details) against(' ".$value."') 
     "; 

$result = mysql_query($query)or die('query error'.mysql_error()); 

while($row = mysql_fetch_assoc($result)){ 
    echo $row['firstName']; 
    echo $row['lastName']; 
    echo $row['details'].'<br />'; 
} 

對於優化查詢和格式化搜索結果的輸出您有什麼想法嗎?

回答

0

您無法在多個表上創建fulltext index。所以我在每張桌子上找到了fulltext index,並且or條款(就像你一樣)足夠好。

但是,您可以創建視圖(基於三個表)並針對該視圖創建全文索引。

編輯:可惜你不能在MySQL

+0

創建視圖索引關於您的編輯:您可以從您的視圖所需要的數據與指數(相當骯髒愚蠢的臨時表,但它作品,並可能對性能產生重大影響)。 – wimvds 2010-03-08 15:09:43

+0

當表格不存在關係時,這是不實際的。不是嗎? – 2010-03-08 16:32:38