php读取sphinx的例子

WBOY
Freigeben: 2016-07-25 09:03:06
Original
998 Leute haben es durchsucht
  1. //检查sphinx是否能连接,不能重试两次,能则连接,不用mysql协议,仅供参考
  2. function checkSphinxNoMysql() {
  3. $flag = true;
  4. $retries = 0;
  5. while ( $flag && $retries $s = new SphinxClient ();
  6. $s->setServer ( $_ENV ['db_host'], $_ENV ['current_sphinx_port'] );
  7. if (! $s->open ()) {
  8. //此处为如果连接不上就更改配置文件,根据项目需要来写
  9. //global $configDefault;
  10. //updateConfig ( $configDefault );
  11. $retries ++;
  12. } else {
  13. $flag = false;
  14. break;
  15. }
  16. }
  17. return $s;
  18. if ($retries >= 2) {
  19. //sendemail or not
  20. return false;
  21. }
  22. }
  23. $order_column = 'id DESC,time DESC';//排序规则
  24. //$s = checkSphinx ();
  25. $s = new SphinxClient ();
  26. $s->setServer ( 'sphinx_host', 'sphinx_port');
  27. //以上两句代码亦可使用$s = checkSphinx ();来代替
  28. $indexname = "page_keyword";//索引名字
  29. $s->setMatchMode ( SPH_MATCH_PHRASE );
  30. $s->SetSortMode ( SPH_SORT_EXTENDED, $order_column );
  31. $s->setMaxQueryTime ( 100000 );
  32. $s->setLimits ( 0, $limit_total, $limit_total );
  33. $keyword_sphinx = iconv ( "gbk", "utf-8", $keyword );
  34. $result = $s->query ( $keyword_sphinx, $indexname );
  35. $s->close ();
  36. if ($result ['total'] > 0) {
  37. var_dump($result ['matches']);
  38. //根据打印出的结果进行相应的读取
  39. }
  40. ?>
复制代码

2.采用mysql二进制网络协议的代码

  1. //检查sphinx是否能连接,不能重试两次,能则连接,用mysql14协议
  2. protected function checkSphinx() {
  3. $flag = true;
  4. $retries = 0;
  5. while ( $flag && $retries $conn = mysql_connect ( "{$_ENV ['db_host']}:{$_ENV ['current_sphinx_port']}" );
  6. if (! $conn) {
  7. //此处为如果连接不上就更改配置文件,根据项目需要来写
  8. //global $configDefault;
  9. //updateConfig ( $configDefault );
  10. $retries ++;
  11. } else {
  12. $flag = false;
  13. break;
  14. }
  15. }
  16. if ($retries >= 2) {
  17. die ( "Please contact with administrator." );
  18. }
  19. return $conn;
  20. }
  21. $order_column = 'id DESC,time DESC';//排序规则
  22. $conn = mysql_connect ( "sphinx_host:sphinx_port" );
  23. //以上代码亦可使用$conn = checkSphinx ();来代替
  24. if (! $conn) {
  25. return - 1;//连接不上返回状态
  26. }
  27. $keyword_sphinx = iconv ( "gbk", "utf-8", $keyword );
  28. //keyword为索引名字
  29. $sql = "select * from keyword where match('{$keyword_sphinx}') order by {$order_column} limit {$limit_total} option max_matches={$limit_total}";
  30. $result = @mysql_query ( $sql, $conn );
  31. $i = 0;
  32. while ( ($row = mysql_fetch_array ( $result )) !== false ) {
  33. var_dump($row);
  34. //根据打印出的结果进行相应的读取
  35. }
  36. $totals = $this->getTotalFound ($conn);//获取总记录个数
  37. ?>
复制代码

如何获取总记录个数参考:sphinxql如何得到结果数?show meta的详细说明?



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage