首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP解析文本字段以查找标记

问PHP解析文本字段以查找标记
EN

Stack Overflow用户
提问于 2011-08-02 01:38:57
回答 2查看 288关注 0票数 0

我正在为我的公司创建一个使用PHP的在线FAQ应用程序。

要用常见问题填充数据库,用户必须输入问题、答案和一些搜索标记。

用户通过在文本字段中输入他们的问题来搜索系统。有没有人知道有任何PHP (或JavaScript)模块可以分析这个问题,以找到用于SQL搜索的关键字?

例如,在“什么是公司互联网政策”的问题中,粗体项目将被识别为关键字,以便在数据库中搜索它们。

EN

回答 2

Stack Overflow用户

发布于 2011-08-02 01:53:54

如果您想使用特定/选定的关键字进行搜索,在我看来,要求用户输入搜索标记是不必要的。我会创建两个表:一个包含您选择的关键字(它只包含一个索引的主列--我称之为keyword)和另一个表,它存储所有常见问题信息。然后,PHP将使用用户的文本字符串搜索关键字表:

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2011-08-02 01:54:48

假设为MySQL,在相关列上添加FULLTEXT索引并使用自然语言全文搜索。

然后,您应该能够在AGAINST子句中使用输入的标题,例如

代码语言:javascript
复制
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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6906428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档