我正在为我的公司创建一个使用PHP的在线FAQ应用程序。
要用常见问题填充数据库,用户必须输入问题、答案和一些搜索标记。
用户通过在文本字段中输入他们的问题来搜索系统。有没有人知道有任何PHP (或JavaScript)模块可以分析这个问题,以找到用于SQL搜索的关键字?
例如,在“什么是公司互联网政策”的问题中,粗体项目将被识别为关键字,以便在数据库中搜索它们。
发布于 2011-08-02 01:53:54
如果您想使用特定/选定的关键字进行搜索,在我看来,要求用户输入搜索标记是不必要的。我会创建两个表:一个包含您选择的关键字(它只包含一个索引的主列--我称之为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值靠近数据库之前,一定要对它进行净化。
发布于 2011-08-02 01:54:48
假设为MySQL,在相关列上添加FULLTEXT索引并使用自然语言全文搜索。
然后,您应该能够在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');https://stackoverflow.com/questions/6906428
复制相似问题