2011-08-02 37 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');