Google CustomSearchControl显示不一致的分页链接

Google CustomSearchControl showing inconsistent pagination links

本文关键字:分页 链接 不一致 CustomSearchControl 显示 Google      更新时间:2023-09-26

使用CustomSearchControl时,结果页面的数量取决于您正在查看的页面。例如,到这个站点搜索:car

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

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

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

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

您可以检查customsearchcontrol .search .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)