5

使用 CustomSearchControl 时,结果页面的数量取决于您正在查看的页面。例如,转到此站点并搜索:汽车

在第一个结果页面上,它将显示指向 3 个页面的链接,但是当您单击 2 或 3 时,它会在第 2 页结束。

为什么会发生这种情况,是否有解决方法?

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

4

1 回答 1

1

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

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

不幸的是,CSE 也不够聪明,无法记住它的估计。因此,您可以从 127 的估计值开始,转到最后一页并设置为 94,然后转到倒数第二页并设置为 120,即使此时它应该知道它不能超过 94。所以我想如果你真的想要,你可以制作自己的分页,至少跟踪最小值。似乎通常(总是?)在最后一页上,所以如果它需要尽可能好,您可以以编程方式加载最后一页,进行估算以建立分页,然后切换回用户的第一页.

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

于 2013-02-16T05:19:03.957 回答