• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php封装搜索类实例

php 搞代码 3年前 (2022-01-22) 17次浏览 已收录 0个评论

本文主要为大家详细介绍了php实现搜索类封装示例,感兴趣的小伙伴们可以参考一下。希望对大家有所帮助。

具体内容如下

<?php/** * SoClass.php * 索引与搜索类 */class SoClass {  private $_xindex;  private $_xsearch;   private $_project;   public function __construct($project){     //载入引导文件    require_once 'lib/XS.php';    //初始化    $xs = new XS($project);     $this->_project = $project;    $this->_xindex = $xs->index;     $this->_xsearch = $xs->search;    $this->_xsearch->setCharset('UTF-8');  }   public function query($keyWord,$row=20,$jnum=0){     $xs = new XS($this->_project);    $xs->search->setFuzzy();    $xs->search->setAutoSynonyms();    $xs->search->setQuery($keyWord); //支持同义词搜索,默认打开    $xs->search->setLimit($row, $jnum); //设置返回结果最多为 5 条,并跳过前 10 条    $docs = $xs->search->search(); //执行搜索,将搜索结果文档保存在 $docs 数组中        $count = $xs->search->count(); //获取搜索结果的匹配总数估算值    if($count){      $data = array();      foreach ($docs as $key=>$doc){        $data[$key]['pid'] = $doc->pid;        $data[$key]['nid'] = $doc->nid;        $data[$key]['category'] = $doc->category;        $data[$key]['url'] = $doc->url;        $data[$key]['name'] = $xs->search->highlight(htmlspecialchars($doc->name));        $data[$key]['message'] = $xs->search->highlight(htmlspecialchars($doc->message));      }      return array('data'=>$data,'count'=>$count);    }    return array();  }   public function hotWord($num,$type='lastnum'){     return $this->_xsearch->getHotQuery($num,$type);  }   public function expanded($keyWord){     return $this->_xsearch->getExpandedQuery($keyWord);  }   public function lastCount(){     return $this->_xsearch->getLastCount();  }   public function index($data,$update=0){     // 创建文档对象    $doc = new XSDocument;    $doc->setFields($data);     // 添加或更新到索引数据库中    if(!$update){      $this->_xindex->add($doc);    }else{      $this->_xindex->update($doc);    }  }   public function delete($idArray){    //删除索引(主键删除array('1','2','3'))    $this->_xindex->del($idArray);   }   public function <b style="color:transparent">(、本文来源gao@!dai!ma.com搞$$代^@码网*</b><i>搞gaodaima代码</i>addSynonym($word1,$word2){    $this->_xindex->addSynonym($word1,$word2);  }   public function clearIndex(){    $this->_xindex->clean();  } } ?>

相关推荐:

php 封装gd 库

php 类与构造函数详解

php 类与对象全面了解

以上就是php封装搜索类实例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php封装搜索类实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址