El motivo es que Google solo calcula cuántos resultados están disponibles. A medida que carga cada página, refina la estimación, por lo que cambia el número de páginas.
Puede verificar la propiedad estimatedResultCount del objeto customSearchControl.searcher.cursor, pero desafortunadamente no le servirá de nada porque es solo la estimación que el CSE usa para generar la paginación misma. (A medida que se cargue cada página, cambiará a la nueva estimación). También hay una propiedad resultCount, pero creo que es para compatibilidad con versiones anteriores, ya que siempre es igual a estimatedResultCount.
Lamentablemente, el CSE tampoco es lo suficientemente inteligente como para recordar su estimación. Entonces puede comenzar con un estimado de 127, ir a la última página y tener 94, luego ir a la penúltima página y tener 120, aunque en ese momento debería saber que no puede ser más de 94. Así que supongo que si realmente quisieras, podrías hacer tu propia paginación que al menos haga un seguimiento del valor mínimo. Parece que generalmente (¿siempre?) En la última página, por lo tanto, si necesita ser lo mejor posible, puede cargar la última página mediante la programación, tomar la estimación para construir su paginación, luego volver a la primera página para el usuario .
Si decide seguir esa ruta, puede crear su propia paginación usando la función customSearchControl.searcher.cursor.gotoPage (página). (https://developers.google.com/web-search/docs/reference#_class_GSearch)
¿Alguna vez descubrió esto? Me estoy encontrando con el mismo problema tratando de construir mi propia paginación. – AlbertVo
@AlbertVo No encontré una solución para esto. – ofko