xunsearch封装一个类
<?php
/**
* XSSearch XSSearch类处理xunsearch搜索
* @project 搜索项目
* @query 收索关键字
* @pagesize 搜索每页显示条数
* @num 热门搜索条数
* @author zhoubin
* @link http://www.mining120.com/
* @author 周斌 <1196684330@qq.com>
* @version 1.0.0
*/
class XSSearch{
private $project;
private $pagesize;
public $search;
//构造函数
public function __construct($project,$pagesize){
//引入XS类
define('XUNSEARCH_PATH','/usr/local/xunsearch/');
require XUNSEARCH_PATH."sdk/php/lib/XS.php";
//赋值属性
$this->project=$project;
$this->pagesize=$pagesize;
echo $pagesize.$project;
die();
try{
//新建XS类
$xs = new XS($project);
//建立search对象
$this->search=$xs->search;
//设置字符集编码
$this->search->setCharset('UTF-8');
}catch(XSException $e){
echo $e;
}
}
//查询数据并以数组方式显示并带高亮显示
public function search($query,$page,$pagesize){
$offset = ($page-1)*$pagesize;
$this->search->setFuzzy()->setQuery($query);
$docs = $this->search->setLimit($offset,$pagesize)->search();
//循环$docs获取的数据
$tags=array();
foreach ($docs as $doc)
{
$tags[]['title'] = $this->search->highlight($doc->title); // 高亮处理 title 字段
$tags[]['introduce']= $this->search->highlight($doc->introduce); // 高亮处理 introduce 字段
//$tags[]['edittime']=$doc->edittime;
$tags[]['num'] =$doc->rank();
}
return $tags;
}
//查询热门搜索
public function hot(){
return $this->search->getHotQuery();
}
//查询相关收索
public function related($query){
return $this->search->getRelatedQuery($query, 10);
}
//查询搜索总数
public function sum(){
return $this->search->dbTotal;
}
//查询最近搜索总数
public function lastsum(){
return $this->search->lastCount;
}
//查询$sql收索总数
public function qureysum($query){
return $this->search->setQuery($query)->count();
}
}
?>