关于使用coreseek并为其做分页的介绍


Posted in PHP onJune 21, 2013

coreseek 做分页时找数据总量还真不好找。以为他会给一个方法(函数)什么的去获取,结果却不是。
首先需要了解:
num_matches:
当前返回的结果数,<= limit设置值。
max_matches: 最多返回的结果数,默认为1000,用户最多只能看到1000条搜索结果。这个是在csft_mysql.conf中设置的。
total_found: 结果总数。索引中所有满足查询条件的文档总数。这个是在你查询的返回结果中的数组中有的。当然前提是你必须在query前设置:$this->sc->SetArrayResult(true);
total: 最多返回结果数,取值取决于max_matches值和total_found值。如果total_found数超过max_matches,则total = max_matches,否则,total = total_found。这个也是在你查询的返回结果中的数组中有的。当然前提也是你必须在query前设置:$this->sc->SetArrayResult(true);
这样,了解了这几个属性之后就可以做分页了。

我们应该使用返回值中的total来做分页总数据。虽然这个不代表真实的返回值(当返回值大于max_matches,也就是1000,如真实返回2500,但是你却只能得到1000)。
代码是:

$this->sc->SetServer("127.0.0.1",9312);
  $this->sc->SetArrayResult(true);
  $this->sc->SetLimits($start,$page);
//如果需要搜索指定全文字段的内容,可以使用扩展匹配模式:
  $this->sc->SetMatchMode(SPH_MATCH_ANY); 
$res = $this->sc->Query($where,"main");
$count = $res['total'];

这个¥count就是我们要的分页的总数据了。
其他的后续怎么分页是以样式和数据结构做的,不能雷同,并且分页也是基础的东西,所以这里就不再多说分页的详细问题了。我这里单单讨论这个总数据的取值情况。因为很多人都取count($res['matches'])的值,但是这个是分页后的返回结果,你只能得到10,或者20或者其他的值。呵呵,那就搞笑了。
PHP 相关文章推荐
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
跟我学Laravel之路由
Oct 15 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 PHP
如何重写Laravel异常处理类详解
Dec 20 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 #PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 #PHP
浅析php中jsonp的跨域实例
Jun 21 #PHP
解析php中array_merge与array+array的区别
Jun 21 #PHP
邮箱正则表达式实现代码(针对php)
Jun 21 #PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 #PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 #PHP
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript获取重复次数最多的字符
2015/07/08 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
python实现划词翻译
2020/04/23 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python实现可变变量名方法详解
2019/07/01 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
Python如何定义一个函数
2015/09/01 面试题
Delphi软件工程师试题
2013/01/29 面试题
实习自荐信
2013/10/13 职场文书
迎接领导欢迎词
2014/01/11 职场文书
同事打架检讨书
2014/02/04 职场文书
安全承诺书范文
2014/03/26 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
实习计划书范文
2015/01/16 职场文书
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android