网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 php实现搜索类封装示例
范文
    本文为大家分享了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 addSynonym($word1,$word2){
        $this->_xindex->addSynonym($word1,$word2);
      }
      public function clearIndex(){
        $this->_xindex->clean();
      }
    }
    ?>
    以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/21 2:29:51