首页 > 其他 > 详细

修改sphinx最大输出记录数

时间:2014-11-21 18:33:37      阅读:375      评论:0      收藏:0      [点我收藏+]
修改sphinx最大输出记录数
bubuko.com,布布扣
归纳如下:
Sphinx的查询默认最大记录数是:1000,而我们想更改这个数值。就需要更改三个地方。
1是更改sphinx.conf配置文件的:max_matches   = 10000 #后面数字就是你想查询的最大记录数。建议在1000~10000之内。
2是在api调用时,$cl->SetLimits($pageStart, $pageSize, $max_limits);用SetLimits的第三个参数更改为你想要的显示最大记录数。
3 修改sphinxclient.php 中max_matches
 
问题是这样的,信息列表页的分页里显示有100多页,但到51页的时候不显示正确的信息列表了。按惯例,输出结果,查看可疑之处。发现返回的结果里total永远都是1000,total_found大概是分页中显示的页数和每页信息数的乘积,这说明total_found返回的是真正的信息数,但查询结果的时候又受到了total的限制。
百度sphinx total_found,得知sphinx有个max_matches是限制匹配结果数的,看了sphinx.conf,发现其中设置的max_matches远大于查询结果数,看来代码中有设置了,又查看sphinx的应用类,发现了SetLimits($start, $limit, 1000)这个东东,原来max_matches在这儿被定成了1000。
据说max_matches设定太大的话,查询速度会受影响,想了想把这个值设成变量,等于要查询的页数和每页信息数的乘积,这样就能得到正确的结果了,而且不会影响小页码的页面原查询速度。
http://www.ourjour.com/tag/sphinx-max_matches/

 

修改sphinx最大输出记录数

原文:http://www.cnblogs.com/luowei/p/4113438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!