php 使用sphinx实例,PHP 读取sphinx的简单示例

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

对PHP读取sphinx实例感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

1.未采用mysql二进制网络协议的代码:

/**

* PHP读取sphinx实例

*

* @param

* @arrange 五一二笔记网: 512Pic.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']);

//根据打印出的结果进行相应的读取

}

/*** 来自512笔记(www.512pic.com) ***/ 2.采用mysql二进制网络协议的代码:

/**

* PHP读取sphinx实例

*

* @param

* @arrange 五一二笔记网: 512Pic.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);//获取总记录个数

/*** 来自512笔记(www.512pic.com) ***/

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

关键词:sphinx

您可能感兴趣的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值