//引入sphinx搜索类文件
require ( "sphinxapi.php" );
//实例化sphinx搜索类
$cl = new SphinxClient ();
//连接服务器,端口
$cl->SetServer ( '192.168.1.250', 9312);
//超时时间3秒,3秒连不上放弃
$cl->SetConnectTimeout ( 3 );
//是以数组形式返回结果。
$cl->SetArrayResult ( true );
//设置全文查询的匹配模式
$cl->SetMatchMode ( SPH_MATCH_ANY);
参数如下:
SPH_MATCH_ALL 匹配所有查询词(默认模式).
SPH_MATCH_ANY 匹配查询词中的任意一个.
SPH_MATCH_PHRASE 将整个查询看作一个词组,要求按顺序完整匹配.
SPH_MATCH_BOOLEAN 将查询看作一个布尔表达式.
SPH_MATCH_EXTENDED 将查询看作一个Sphinx内部查询语言的表达式.
SPH_MATCH_FULLSCAN 使用完全扫描,忽略查询词汇.
SPH_MATCH_EXTENDED2 类似 SPH_MATCH_EXTENDED ,并支持评分和权重.
根据关键词搜索
$res = $cl->Query ( '姬虞封于唐', "*" );
print_r($cl);
SphinxClient Object( [_host] => 192.168.1.250
[_port] => 9312
[_offset] => 0
[_limit] => 20
[_mode] => 1
[_weights] => Array ( )
[_sort] => 0
[_sortby] =>
[_min_id] => 0
[_max_id] => 0
[_filters] => Array ( )
[_groupby] =>
[_groupfunc] => 0
[_groupsort] => @group desc
[_groupdistinct] =>
[_maxmatches] => 1000
[_cutoff] => 0
[_retrycount] => 0
[_retrydelay] => 0
[_anchor] => Array ( )
[_indexweights] => Array ( )
[_ranker] => 0
[_maxquerytime] => 0
[_fieldweights] => Array ( )
[_overrides] => Array ( )
[_select] => *
[_error] => connection to 192.168.1.250:9312 failed (errno=10060, msg=由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)
//1:防火墙,2:端口错,3:没开启
[_warning] =>
[_connerror] => 1
[_reqs] => Array ( )
[_mbenc] =>
[_arrayresult] => 1
[_timeout] => 3
[_path] =>
[_socket] => )
连接成功后会打印
print_r($res);
Array
(
[error] =>
[warning] =>
[status] => 0
[fields] => Array
(
[0] => data
)
[attrs] => Array
(
[adddate] => 2
)
[matches] => Array
(
[0] => Array
(
[id] => 1897 //返回的id
[weight] => 1 //权重
[attrs] => Array
(
[adddate] => 1315535324 //时间
)
)
如上。。。
[1] => Array
(
[id] => 1910
[weight] => 1
[attrs] => Array
(
[adddate] => 1315534874
)
)
........
)
[total] => 23
[total_found] => 23
[time] => 0.014
[words] => Array
(
[故宫] => Array
(
[docs] => 23
[hits] => 23
)
)
)