如何使用Sphinx(限制搜索结果编号)

时间:2011-08-20 12:17:24

标签: php sphinx

我是Sphinx的新手,需要一些帮助。我用PHP脚本查询Sphinx服务器,如:

 $cl = new SphinxClient();
 $cl->SetServer( "host", 9312 );
 $cl->SetMatchMode( SPH_MATCH_ANY  );
 $result = $cl->Query( "some word",  "index1" );  

现在我想知道如何提取SAME查询前20个结果,接下来的20个结果等,如MySQL LIMIT 0,20,然后是LIMIT 20,20等?

4 个答案:

答案 0 :(得分:1)

$offset = 0;
if (isset($_GET['offset'])) {
    $offset = $_GET['offset'];
}
$limit = 30;
$max_matches = 1000;
$cl = new SphinxClient();

$cl->SetLimits((int)$offset,
    // limit for this "page", starting at $offset
    (int)$limit,
    // absolute limit for number of results
    ((int)$limit > $max_matches)
        ? (int)$limit
        : (int)$max_matches);

其中$offset是当前开始记录(默认为0),$limit是每页显示的记录数,$max_matches是您希望允许返回的最大匹配数在一次搜索中。

答案 1 :(得分:1)

答案 2 :(得分:1)

答案 3 :(得分:0)

第一次

$cl->SetLimits(0,20);

然后

$cl->SetLimits(20,20);