1、在配置coreseek也是sphinx中文分词之后 , 下载一个sphinxapi , 也可以直接将sphinx的模块直接编译到php 不过了只方便直接使用sphinxapi ,.

传送门:http://pan.baidu.com/s/1gdKmh71

2、新建一个search.php文件 sphinx.php 跟其放同一目录中, 代码如下

  <?php

        //首先连接数据库

              $con = @mysql_connect("localhost","root","123");

mysql_select_db("test");

mysql_query("SET NAMES UTF8");

             

              //简单的获取分页数据

$search = ‘sphinx’;           //假如查询sphinx这个关键词 , 可变动

$page = isset($_GET[‘page’]) ? (int) $_GET[‘page’] : 1;

$pagesize = 10;

$offset = ($page – 1) * $pagesize;

 

//连接sphinx

require "sphinxapi.php";

$sp = new SphinxClient;       //New一个sphinx客户端

$sp -> SetServer("localhost",9312);

        $sp->SetLimits($offset, $pagesize,1000);  //1000是查询最大的条件是1000

 

              $data = $sp-> query($search , “*”);   //查询关键词

//查询的数据以数组的形式返回给$data , 下标matches 是当前返回的查询结果集合 , 下标total 是查询到的总数量,用于控制分页显示

              //$data的数组如下Array ( [error] => [warning] => [status] => 0 [fields] => Array ( [0] => title [1] => description ) [attrs] => Array ( ) [matches] => Array ( [1] => Array ( [weight] => 2 [attrs] => Array ( ) ) [2] => Array ( [weight] => 2 [attrs] => Array ( ) ) ) [total] => 2 [total_found] => 2 [time] => 0.014 [words] => Array ( [linux] => Array ( [docs] => 2 [hits] => 4 ) ) )

       

              //根据返回的数据查询数据库中的数据

              if(isset($data[‘matches’])){

                     $inId = implode(‘,’,array_keys($matches['matches']) );

                     $sql = “SELECT * FROM post WHERE id IN ({$inId})”;

            $qry = mysql_query($sql);

            $fetchData = array();                    //读取的数据

            while(!!$row = mysql_fetch_assoc($qry)){

     $fetchData[] = $row;

}

}

             

              //根据total的数据 重新进行分页显示

              $totalPage = ceil($total / $pagesize);

        $page = $page > $totalPage ? $totalPage : $page;

        //然后根据新的page输出一些可点击按钮如<a>首页</a><a>1</a><a>尾页</a>

 

  ?>

3、这样一个简单sphinx分页就好了,大家可以根据自己的框架 项目要求等进行修改,优化。大致的思路就是这样

 

版权声明:未经博主允许不得转载。http://smister.com/post-14.html