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