关于迅搜(xunsearch)分页和搜索结果不一致的解决方法

问题:

在使用迅搜搜索的过程中,经常遇到搜索总数和结果不一致,导致分页有部分是空的

原因:

官方的文档里面显示的,$count = $search->getLastCount();获取结果,为了性能需求,减少系统开销,返回的数量是估算数量,不是真实数量。。

解决方法:

//获取首页总条数
$search->search();
$count1 = $search->getLastCount();
//跳转到最后,再次获取总条数
$page1 = ceil($count1/$rows);
$begin = ($page1-1)*$rows;
$search->setLimit($rows,$begin);
$search->search();
$count = $search->getLastCount();
//回到正常分页
$search->setLimit($rows,$begin_item);
$docs = $search->search();

在第一次获取结果后,把最后一页再次查询,超过真正总数,会反回真正的总数。
记录一下这个坑,避免以后重复跳

标签: 无

发表评论: