2011-12-10 18 views
5

使用CustomSearchControl时,结果页的数量因所查看的页面而异。例如,去this site并搜索:汽车Google CustomSearchControl显示不一致的分页链接

在第一个结果页面,它会显示链接到3页,但是当你点击2或3时,结束于第2页

为什么这发生了,是否有解决方法?

如果有可能获得实际的结果数量,并建立自己的分页?

+0

你有没有想过这个?我遇到了同样的问题,试图建立自己的分页。 – AlbertVo

+0

@AlbertVo我没有找到解决方案。 – ofko

回答

1

原因是谷歌只估计有多少结果可用。当您加载每个页面时,它会改进估计值,因此页数会发生变化。

您可以检查customSearchControl.searcher.cursor对象的estimatedResultCount属性,但不幸的是它不会帮助您,因为这只是CSE用于生成分页本身的估计值。 (当每个页面被加载时,它会改变为新的估计值。)还有一个resultCount属性,但我相信这是为了向后兼容,因为它总是等于estimatedResultCount。

不幸的是,CSE也不够聪明,无法记住它的估计。因此,您可以从127开始,到最后一页,然后是94,然后进入倒数第二页,并将其设为120,尽管它应该知道在那一点上它不能超过94.所以我想如果你真的想让你自己做分页,至少可以追踪最低价值。它看起来总是(总是?)在最后一页,所以如果它需要尽可能好,你可以通过编程来加载最后一页,估计建立你的分页,然后切换回用户的第一页。

如果您决定走这条路线,您可以使用customSearchControl.searcher.cursor.gotoPage(page)函数构建自己的分页。 (https://developers.google.com/web-search/docs/reference#_class_GSearch

+0

悲伤,但那是你所能做的:( –