使用CustomSearchControl时,结果页数会根据您查看的页面而有所不同。例如,转到this site并搜索:car
在第一个结果页面上,它将显示指向3个页面的链接,但是当您单击2或3时,它将在第2页结束。
为什么会发生这种情况,是否有针对此的解决方法?
如果可以获得实际的结果数量,并建立我自己的分页?
答案 0 :(得分:1)
原因是谷歌只估算有多少结果可用。当您加载每个页面时,它会细化估计值,因此页面数量会发生变化。
您可以检查customSearchControl.searcher.cursor对象的estimatedResultCount属性,但遗憾的是它不会对您有所帮助,因为这只是CSE用于生成分页本身的估计值。 (在加载每个页面时,它将更改为新的估计值。)还有一个resultCount属性,但我认为它是为了向后兼容,因为它总是等于estimatedResultCount。
不幸的是,CSE也不够聪明,无法记住它的估计。所以你可以从估计值127开始,转到最后一页并将其设置为94,然后转到倒数第二页并将其设置为120,即使它应该在那时知道它不能超过94.所以我想如果你真的想要你可以制作自己的分页,至少跟踪最小值。看起来一般(总是?)在最后一页,所以如果它需要尽可能好,你可以编程加载最后一页,估计建立你的分页,然后切换回用户的第一页
如果您决定使用该路线,则可以使用customSearchControl.searcher.cursor.gotoPage(页面)功能构建自己的分页。 (https://developers.google.com/web-search/docs/reference#_class_GSearch)