V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wyx
V2EX  ›  编程

基于sphinx的站内搜索如何做分页。

  •  
  •   wyx · 2012-12-04 10:37:42 +08:00 · 7156 次点击
    这是一个创建于 4373 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的想法是:取得搜索出来结果总的条数,然后除以每页面显示的条数,然后可以得到一共的页面数。
    但是他们提供的api貌似没有取得总条数的这么个函数。
    2 条回复    1970-01-01 08:00:00 +08:00
    phzzy
        1
    phzzy  
       2012-12-05 11:05:52 +08:00
    $page = isset($_GET['p']) ? intval($_GET['p']) : 1;
    if($page <= 0) $page = 1;
    $pagesize = 20;
    $s = new SphinxClient ();
    $s->SetServer('localhost' , 9312);
    $s->SetLimits(($page - 1) * $pagesize , $pagesize , 3000);
    $s->SetMaxQueryTime(3000);
    $s->SetSortMode(SPH_SORT_ATTR_DESC , 'id_attr');
    $result = $s->Query($keyword , 'lixiansou');
    if(empty($result) || $result['total_found'] == 0) {
    $count = 0;
    $ids = array();
    } else {
    $count = $result['total_found'];
    $ids = array_keys($result['matches']);
    }


    php 对应的一段 sphinx api 代码
    返回结果中有 total_found 用来分页
    wyx
        2
    wyx  
    OP
       2012-12-07 17:42:52 +08:00
    谢谢~我之前没注意到total_found
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:17 · PVG 07:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.