友善交流技术...
php 调用 sphinx
上一篇 /
下一篇 2011-06-22 18:13:11
/ 个人分类:开发代码
<?php
include 'SphinxClient.class.php';
header('Content-Type: text/html;charset="UTF-8"');
if ($_GET) {
// 关键词
$keyword = urldecode(trim(strip_tags($_GET['keyword'])));
$keyword = "二手房" ;
if ($keyword) {
// 包含Sphinx的api文件
// require_once 'sphinxapi.php';
// sphinx服务器地址
$server = '10.115.12.78';
// 端口
$port = 9312;
// 索引名 为*时表示搜索所有索引
$indexName = 'idx_sale_beijing';
// 分页页码
$page = intval($_GET['page']) > 1 ? intval($_GET['page']) : 1;
// 每页显示的数量
$pageSize = 30;
$sphinx = new SphinxClient();
// 建立连接
$sphinx->SetServer($server, $port);
// 连接超时时间(非常必要,比如sphinx服务器挂了等异常情况) 单位为s,秒
$sphinx->SetConnectTimeout(3);
// 最大查询时间 单位为ms,毫秒
$sphinx->SetMaxQueryTime(2000);
// 按分页取结果
$sphinx->SetLimits(($page-1)*$pageSize, $pageSize); //第一个参数为offset,第二个参数为limit
// 模式
// $sphinx->SetMatchMode(SPH_MATCH_EXTENDED);
// 取到的原始数据
$orgDatas = $sphinx->Query($keyword, $indexName);
// 调试用,如果有错误的话,可以打印$errors的值
$errors = $sphinx->GetLastError();
var_dump($errors);
// echo '<pre>';
// var_dump($orgDatas);
$sp_error= $sphinx->Status() ;
$sp_client= $sphinx->GetLastWarning();
print_r($sp_client);
/* // 下面是对结果的处理
$datas = array('goods'=>array(),'total'=>0);
if ($orgDatas['total'] > 0) {
$datas['total'] = $orgDatas['total'];
foreach ($orgDatas['matches'] AS $val) {
$val['attrs']['goods_id'] = $val['attrs']['goods_id_new'];
unset($val['attrs']['goods_id_new']);
$datas['goods'][] = $val['attrs'];
}
}
var_dump($datas);
*/
}
} else {
echo '<form. method="get"><input type="type" name="keyword"><input type="submit" value="商品搜索"></form>';
}
?>
收藏
举报
TAG: