setserver ( $_env ['db_host'], $_env ['current_sphinx_port'] ); if (! $s->open ()) { //此处为如果连接不上就更改配置文件,根据项目需要来写 //global $configdefault; //updateconfig ( $configdefault ); $retries ++; } else { $flag = false; break; } } return $s; if ($retries >= 2) { //sendemail or not return false; }} $order_column = 'id desc,time desc';//排序规则//$s = checksphinx ();$s = new sphinxclient ();$s->setserver ( 'sphinx_host', 'sphinx_port');//以上两句代码亦可使用$s = checksphinx ();来代替$indexname = page_keyword;//索引名字$s->setmatchmode ( sph_match_phrase );$s->setsortmode ( sph_sort_extended, $order_column );$s->setmaxquerytime ( 100000 );$s->setlimits ( 0, $limit_total, $limit_total );$keyword_sphinx = iconv ( gbk, utf-8, $keyword );$result = $s->query ( $keyword_sphinx, $indexname );$s->close ();if ($result ['total'] > 0) { var_dump($result ['matches']); //根据打印出的结果进行相应的读取}?>
复制代码
2.采用mysql二进制网络协议的代码:
= 2) { die ( please contact with administrator. ); } return $conn;} $order_column = 'id desc,time desc';//排序规则$conn = mysql_connect ( sphinx_host:sphinx_port );//以上代码亦可使用$conn = checksphinx ();来代替if (! $conn) { return - 1;//连接不上返回状态}$keyword_sphinx = iconv ( gbk, utf-8, $keyword );//keyword为索引名字$sql = select * from keyword where match('{$keyword_sphinx}') order by {$order_column} limit {$limit_total} option max_matches={$limit_total};$result = @mysql_query ( $sql, $conn ); $i = 0;while ( ($row = mysql_fetch_array ( $result )) !== false ) { var_dump($row); //根据打印出的结果进行相应的读取}$totals = $this->gettotalfound ($conn);//获取总记录个数?>
复制代码
如何获取总记录个数参考:sphinxql如何得到结果数?show meta的详细说明?