2011-08-02 35 views
0

我正在爲使用PHP的公司創建在線常見問題應用程序。PHP解析文本字段以查找標籤

要使用FAQ填充數據庫,用戶必須輸入問題,答案和一些搜索標籤。

用戶通過在文本字段中輸入問題來搜索系統。有誰知道任何PHP(或JavaScript)模塊可以分析問題以查找用於SQL搜索的關鍵字嗎?

例如在問題 - 「什麼是公司互聯網政策」的大膽項目將被確定爲關鍵字,以便他們可以在數據庫中搜索?

回答

0

如果您想要使用特定/選定的關鍵字進行搜索,在我看來,要求用戶輸入搜索標籤是不必要的。我會創建兩個表格:一個包含您選擇的關鍵字(其中只包含索引的PRIMARY列 - 我將打電話給keyword),另一個存儲所有常見問題解答信息。然後,PHP將使用用戶的文本字符串搜索關鍵字表:

$string = $_POST['search_string']; 
$this->db->like('keyword',$string); 
$search = $this->db->get('keywords'); 
if($search->num_rows() > 0){ 
    $keyword = $search->keyword; 
    $this->db->like('faq_content',$keyword); 
    $search_faq = $this->db->get('faqs'); 
    foreach($search_faq->result() as $faq){ 
     echo "<h2>$faq_title</h2><p>$faq_content</p>"; 
    } 
} 

確保你讓它去靠近你的數據庫之前淨化你的search_string的價值。

0

假設MySQL,在相關列上添加FULLTEXT索引並使用natural language full-text search

然後,您應該能夠使用輸入標題AGAINST子句中,如

SELECT id, title, body, MATCH (title, body) AGAINST 
('What is the company internet policy') AS score 
FROM faq WHERE MATCH (title, body) AGAINST 
('What is the company internet policy');