2012-05-09 25 views
1

斯芬克斯搜索显示正确的结果,但我遇到了分页问题。如果我的搜索返回3条记录,则会显示“第1页1,显示15条记录中的15条记录,从记录1开始,到15结尾”。假设我的关键字是“How”,app/views/posts/index.ctp显示3条记录中的“How”字样,但我的分页显示“显示15条记录中的15条记录”,而不是“显示3条记录中的3条记录”。如何用Sphinx和CakePHP分页修复不正确的结果计数?

我在这行代码:

$sphinx = array('matchMode' => SPH_MATCH_ALL, 'sortMode' => array(SPH_SORT_EXTENDED => '@relevance DESC')); 
    $results = $this->Post->find('all', array('search' => $this->data['Post']['query'], 'sphinx' => $sphinx)); 
    $this->set('posts', $results, $this->paginate()); 

我应该如何去修复拼版所以它会显示正确的项目数发现了什么?

回答

0

首先你不提供,为社会各界了解问题出在哪里驻留足够的信息...

我可以建议你尝试基于AJAX的分页(link1link2),并包括在您的狮身人面像输出输出,但我不知道您是否遇到与(仅)Shpinx或Cake或两者相关的问题?

+0

嗨鲍里斯拉夫,谢谢你的回应。我认为这个问题存在于我的cakephp上。上面的代码在我的app/controllers/posts_controller.php中,如果我把它传递给我的视图,它会显示结果($ results),但是,分页总是显示我数据库中所有帖子的总数(“显示15记录总共15个“),而不仅仅是找到的记录数量。说,我的关键字是“如何”,app/views/posts/index.ctp显示3条记录中的“How”字样,但我的分页显示“显示15条记录中的15条记录”,而不是“显示3条记录总。”希望,这是有道理的。 TY – Lyman

+0

嗨莱曼,这确实更有意义。在搜索时更改结果数量。分页用于在“分页”事件中显示大量数据记录。当你进行搜索时,你正在改变结果集,但不是分页选项。我想这就是你遇到这个问题的原因。也许,如果您更改分页来计算搜索结果并更改分页计数器的内容,它们都可以为您工作。这实际上只是一个建议,但我认为没有其他办法可以做到。仔细查看提供的示例。 –

+0

基于自定义Ajax的分页并不是最简单的事情,但它是Cake的一个有趣功能。随意问更多,所以我们可以尝试帮助。干杯。 –