本页二维码,扫一扫分享到朋友圈
朋友圈

sphinx下的max_matches取值对SetLimits的影响


阅读208 评论0 赞 22返回首页    go 编程与技术  go 其它


使用PHP在客户端执行

$s -> SetLimits(0, 15, 1200);

传递的第三个参数,是服务器端设定当前查询的结果集大小为1200,但是运行结果,确实$s最终查询得到的结果为空值,为什么呢?



因为,这是由服务器原因造成的,因为服务器端存在max_matches配置项,默认取值为1000,所以若客户端取值超过1000,服务器将不返回任何信息。

知道这个原因,我们只需将服务器的max_matches配置项的值改为1200以上即可!



error_reporting(E_ALL);

set_time_limit(0);

header("Content-type:text/html;charset=utf-8");

require_once 'sphinxapi.class.php';

$sphinx = new SphinxClient();

$sphinx->SetServer ('4.9.5.19',3312);

$sphinx->SetArrayResult (true);

$sphinx->SetLimits(0,10,1000);

$sphinx->SetMaxQueryTime(10);

/*

匹配模式

SPH_MATCH_ALL,匹配所有查询词(缺省模式)

SPH_MATCH_ANY,匹配任意查询词

SPH_MATCH_PHRASE,短语匹配

SPH_MATCH_BOOLEAN,布尔表达式匹配

SPH_MATCH_EXTENDED,查询匹配一个Sphinx内部查询语言表达式

*/

$sphinx->SetMatchMode(SPH_MATCH_ANY);

$index = 'sx_smhaida';

$result = $sphinx->query($_GET['q'],$index);

$sphinx->close ();

if (!empty($result["matches"])){

    foreach($result['matches'] as $k=>$v) {

        $ids .= '\''.$v['id'].'\',';

    }

}else{

    var_dump($result);

}

print_r($ids);


  上一篇:go Coreseek $sphinxapi设置实例和$result结构分析
  下一篇:go sphinx检索语法与匹配模式


评论


用QQ登录管理/创建网站 用微博登录管理/创建网站   发布于:04-24