s-phinx 搜索

34 篇文章 0 订阅
/**
	 * s-phinx 搜索
	 * @param $currentPage 页码
	 * @param $pagesize  个数
	 * @param string $keyword 查询词
	 * @param string $topicArr  话题
	 * @param string $type addtime 按时间排序  heat按热度排序
	 * @param string $asc  asc 正序 desc倒序
	 * @return array
	 */
	public function sphList($currentPage,$pagesize ,$keyword='',$topicArr='',$type='addtime',$asc='desc',$startTime,$endTime){
		Vendor('SphinxClient');
		$cl = new SphinxClient();
		$cl->SetServer (C('SPHINX_IP'), C('SPHINX_PORT'));//配置写到config文件中
		$cl->SetConnectTimeout (1);
		$cl->SetArrayResult (true);
		$cl->SetMatchMode ( SPH_MATCH_EXTENDED2 );
		$cl->SetFilter ( 'status', array(1), false );
		if(!empty($topicArr))
		{
			if(!is_array($topicArr)){$topicArr=array($topicArr);}
			$cl->SetFilter ( 'topic', $topicArr, false );
		}
		$asc=$asc=='desc'?$asc:'asc';
		$cl->SetSortMode(SPH_SORT_EXTENDED,$type.' '.$asc);
		$start = ($currentPage - 1) * $pagesize;
		$cl->setLimits($start, $pagesize, 1000);
		
		if(!(empty($startTime)||empty($endTime))){
			$cl->SetFilterRange('addtime',$startTime,$endTime);
		}

		$keyword = urldecode($keyword);
		$res     = $cl->Query ($keyword, "jm_pick");//
		$err     = $cl->GetLastError();
		//查询错误
		if (!empty($err)){
			return array('ids'=>array(),'err'=>$err,'count'=>0);
		}else{
			$formatResult=$this->sphinx_format_result($res);
			return $formatResult;
		}
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值