php封裝搜尋類執行個體

來源:互聯網
上載者:User
本文主要為大家詳細介紹了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 封裝gd 庫

php 類與建構函式詳解

php 類與對象全面瞭解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.