2011-12-10 7 views
5

Quando si utilizza CustomSearchControl il numero di pagine dei risultati varia a seconda della pagina che si sta visualizzando. Per esempio, andare a this site e la ricerca di: autoGoogle CustomSearchControl che mostra collegamenti di paginazione incoerenti

Nella prima pagina dei risultati, mostrerà link a 3 pagine, ma quando si fa clic su 2 o 3, finisce a pagina 2.

Perché questo succede, e c'è una soluzione per questo?

Se è possibile ottenere il numero effettivo di risultati e creare la propria impaginazione?

+0

hai mai capito questo? Sto incontrando lo stesso problema cercando di costruire la mia impaginazione. – AlbertVo

+0

@AlbertVo Non ho trovato una soluzione a questo. – ofko

risposta

1

Il motivo è che Google stima solo quanti risultati sono disponibili. Mentre carichi ogni pagina, la stima viene perfezionata, quindi il numero di pagine cambia.

È possibile controllare la proprietà estimateResultCount dell'oggetto customSearchControl.searcher.cursor, ma sfortunatamente non sarà di aiuto perché è solo la stima che il CSE utilizza per generare l'impaginazione stessa. (Poiché ogni pagina viene caricata, passerà alla nuova stima.) Esiste anche una proprietà resultCount, ma credo che sia compatibile con le versioni precedenti, in quanto è sempre uguale a EstimateResultCount.

Sfortunatamente, il CSE non è abbastanza intelligente da ricordare la sua stima. Quindi puoi iniziare con una stima di 127, andare all'ultima pagina e averlo 94, quindi andare alla penultima pagina e avere 120, anche se dovrebbe sapere a quel punto che non può essere più di 94. Quindi immagino che se volessi davvero, potresti creare la tua paginazione che almeno tiene traccia del valore minimo. Sembra che sia generalmente (sempre?) Nell'ultima pagina, quindi se dovesse essere il migliore possibile, potresti caricare l'ultima pagina a livello di codice, prendere il preventivo per costruire l'impaginazione, quindi tornare alla prima pagina per l'utente .

Se si decide di percorrere tale percorso, è possibile creare la propria impaginazione utilizzando la funzione customSearchControl.searcher.cursor.gotoPage (pagina). (https://developers.google.com/web-search/docs/reference#_class_GSearch)

+0

Triste, ma questo è tutto quello che puoi fare :( –