以下代码是逻辑处理 $sphinx = $this->_getSphinx(); list($host,$port) = $this->_getConfig(); $sphinx->SetServer ( $host, $port ); $sphinx->SetConnectTimeout ( 1 ); $sphinx->SetMatchMode ( $this->_getMode($method,$q) ); $digest && $sphinx->SetFilter ('digest',array(1,2)); $fid && $sphinx->SetFilter ('fid',$fid,$exclude); $authorids && $sphinx->SetFilter ('authorid',$authorids); if($sch_timemin && $sch_timemax){ $sphinx->SetFilterRange('postdate',$sch_timemin,$sch_timemax); } $groupby && $sphinx->SetGroupBy ( $groupby, $this->getGroup(), "@group desc" ); $sortby && $sphinx->SetSortMode ( ($asc=='DESC' ? SPH_SORT_ATTR_DESC : SPH_SORT_ATTR_ASC), $sortby ); $page = isset($_GET['page']) ? $_GET['page'] : 1; $page = max(1, intval($page)); $start_limit = intval(($page - 1) * $db_perpage); $sphinx->SetLimits ( $start_limit, intval($db_perpage), ( $db_perpage>1000 ) ? $db_perpage : 1000 ); $sphinx->SetRankingMode ( $this->getRanking() ); $sphinx->SetArrayResult ( true ); $index = $this->getIndex($index); $result = $sphinx->Query ( str_replace('|',' ',$q), $index ); 跟踪到内核的Query函数 ->AddQuery 函数里的 的$req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby;代码值都没什么问题 $this->_groupfunc = SPH_GROUPBY_ATTR $this->_groupby = tid 以及$this->_groupsort = @group desc |