我正在使用PHP为我的公司创建一个在线常见问题解答应用。
要使用常见问题解答填充数据库,用户必须输入问题,答案和一些搜索标签。
用户通过在文本字段中输入他们的问题来搜索系统。有没有人知道任何PHP(或JavaScript)模块可以分析问题以找到用于SQL搜索的关键字?
例如,在问题 - “公司互联网政策是什么”中,粗体项目将被识别为关键字,以便可以在数据库中搜索它们?
答案 0 :(得分:0)
如果您想使用特定/选定的关键字进行搜索,我认为要求用户输入搜索标签是不必要的。我创建了两个表:一个用于包含您选择的关键字(只包含一个索引的PRIMARY列 - 我称之为keyword
),另一个用于存储您的所有FAQ信息。然后,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值。
答案 1 :(得分: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');