≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

PHP 读取sphinx的简单示例

人气:535 时间:2018-09-21

这篇文章主要为大家详细介绍了PHP 读取sphinx的简单示例,具有一定的参考价值,可以用来参考一下。

对PHP读取sphinx实例感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
1.未采用mysql二进制网络协议的代码:

/**
 * PHP读取sphinx实例
 *
 * @param 
 * @arrange 五一二笔记网: q1010.com
 **/
//检查sphinx是否能连接,不能重试两次,能则连接,不用mysql协议,仅供参考
function checkSphinxNoMysql() {
	$flag = true;
	$retries = 0;
	while ( $flag && $retries < 2 ) {
		$s = new SphinxClient ();
		$s->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']);
	//根据打印出的结果进行相应的读取
}

/***   来自四海网(www.q1010.com)   ***/
2.采用mysql二进制网络协议的代码:

/**
 * PHP读取sphinx实例
 *
 * @param 
 * @arrange 五一二笔记网: q1010.com
 **/
//检查sphinx是否能连接,不能重试两次,能则连接,用mysql14协议
protected function checkSphinx() {
	$flag = true;
	$retries = 0;
	while ( $flag && $retries < 2 ) {
		$conn = mysql_connect ( "{$_ENV ['db_host']}:{$_ENV ['current_sphinx_port']}" );
		if (! $conn) {
			//此处为如果连接不上就更改配置文件,根据项目需要来写
			//global $configDefault;
			//updateConfig ( $configDefault );
			$retries ++;
		} else {
			$flag = false;
			break;
		}
	}
	if ($retries >= 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);//获取总记录个数


/***   来自四海网(www.q1010.com)   ***/

本文来自:http://www.q1010.com/173/729-0.html

注:关于PHP 读取sphinx的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:sphinx

您可能感兴趣的文章

上一篇:php 控制数组按指定KEY排序实现方法
下一篇:php 中文文件下载实现方法
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。