xunsearch做dedecms文章搜索
2012-12-15 19:14 来源:www.chinab4c.com 作者:dedecms专家
xunsearch做dedecms文章搜索,这个是非常有效的一个手段,可以将dedecms的文章搜索和mysql数据库分离开来,一方面减少了mysql数据库的压力,一方面增强了dedecms的分词搜索的能力。下面我们将结合dedecms的数据结构,来调整下dedecms的搜索功能。
1:在app的项目里面建个article.ini,建立要搜索的字段。
$this->xs = new XS('article');
$this->search = $this->xs->search;
$this->search->setCharset('UTF-8');
2:在dedecms中调用xunsearch的搜索接口。将结dedecms文章搜索结果返回
if($this->xfield == 'title'){
//echo 33;
$this->docs = $this->search->setQuery($this->xfield.":".$this->xvalue)->setSort($this->xorder, false)->setLimit($row,$limitstart)->search();
}else{
//echo $this->xorder;
$this->docs = $this->search->setQuery($this->xvalue)->setSort($this->xorder, false)->setLimit($row,$limitstart)->search();
}
3:统计出搜索关键字的搜索结果数量,用于dedecms分页
function get_result(){
$search_type = isset($_GET['searchtype'])?trim($_GET['searchtype']): 'title';
$q = isset($_GET['q'])?trim($_GET['q']): '';
$order = isset($_GET['orderby'])?trim($_GET['orderby']): 'pubdate';
if(empty($q)){
$q = isset($_GET['keyword'])?trim($_GET['keyword']): 'test';
}
//排序字段
if($order == 'hot'){
$order='click';
}else{
$order='pubdate';
}
$this->xorder = $order;//echo $this->xorder;
$this->xvalue = $q;
if($search_type == 'title'){
$this->xfield = 'title';
$this->docs = $this->search->setQuery($this->xfield.":".$q)->setSort($order, false)->setLimit(10,0)->search();
}else{
$this->xfield = '';
$this->docs = $this->search->setQuery($q)->setSort($order, false)->setLimit(10,0)->search();
}
$this->total = $this->search->getLastCount();
}
相关文章:
http://www.chinab4c.com/dedecmsjiaocheng/201211/091040.html
来源:http://www.chinab4c.com
最近更新
常用插件
- ecsho成本利润统计分析插件
最近在二次开发ecshop过程中,很多朋友要求一款分析 ecshop成本和利润插...
- ecshop二次开发直接优惠现
ecshop二次开发促销售功能插件,主要是扩展了ecshop促销功能,增加了更...
- ecshop二次开发首页显示购
ecshop二次开发首页显示购买记录插件,用图文的方式,来处理在首页显示...
- ecshop打印快递发货单
ecshop打印快递发货单,这个问题是很常见的问题。在发货完成之后,有些...
- ecshop 匿名下单自动注册会
ecshop 匿名下单自动注册会员...