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