sphinx结果集total和total_found的区别

原文地址:http://blog.sina.com.cn/s/blog_8dbf93a80101hjmi.html

参考:http://www.coreseek.cn/forum/2_345_0.html



sphinx.conf文件里面有一个配制最大匹配数的参数max_matches ,默认值是1000假如一次搜索里应该查询到2000个匹配,但是在sphinx结果集中只会返回1000个匹配,因为受到max_matches=1000的限制,这时候,结果集里,

total=1000,total_found=2000,假设一页显示20条,那么如果用total_found做为分页的总数来设定,在第51页之后的数据都将显示为空白,因为操过了1000条记录.

于是,我修改了sphinx.conf里的max_matches=2000,结果发现,改成2000之后还是没有取到2000条记录,在第51页之后都是空白数据,为什么?

这时候我又去网上查了资料,发现,$s->SetLimits($start, $limit)的第三个参数,默认为1000,这个参数也是用来设定返回的最大匹配数的,所以这就是这为什么配制文件里改成2000后还是只取到1000条记录的原因...

还有一点,就是setLimits的第三个参数的值不能超过max_matches的值,否则将取不到记录

所以,total_found返回的是所有的匹配数,不受max_matches和setLimits的第三个参数的限制,而total返回的匹配数最大不超过max_matches和setLimits里的最小值

比如我们经常看到的,淘宝搜索返回的页面最多只返回100页的数据,这时候,total和total_found就能很好的起到作用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值