come impaginare e combinare i risultati che provengono da diverse fonti ordinate

5

Ho il seguente scenario:

Ho un utente che ha bisogno di vedere alcuni feed di notizie da siti diversi e voglio impaginarli e ordinarli per data. Il problema è che non capisco come farlo schematicamente.

Recupera la parte superiore N di ciascun sito e quindi limita i risultati? Ciò potrebbe causare risultati incoerenti se ad esempio:

Chiedo i primi 100 risultati di ciascun sito e quindi seleziono in totale 100 nuovi da tutti i siti. La seconda volta che faccio questo se il sito A ha tutti i suoi primi 100 risultati più nuovi rispetto agli altri siti, è un problema. Chiederò ai risultati dei siti da 100-200 dove i risultati del sito B dovrebbero arrivare da 0 a 100 perché non sono stati visualizzati l'ultima volta.

Come fare questo tipo di aggreggamento senza recuperare tutti i dati disponibili (o una quantità eccessiva di risultati) da ciascun sito?

    
posta arisalexis 15.04.2015 - 10:35
fonte

2 risposte

0

Devi ricordare il punto iniziale durante la impaginazione, quindi se recuperi i risultati più recenti per tutti i siti, devi essere in grado di ripetere la query per lo stesso set di risultati, che dipenderà dai dati dei risultati che ricevi, ad esempio, userò un valore ID per i miei risultati di dati SQL, ma potrebbe essere basato sulla data per altri sistemi.

Una volta che hai questo, puoi ripetere la query chiedendo le pagine di dati successive (o precedenti). Se vuoi ricominciare, dovrai includere un'opzione di ricarica o di aggiornamento che reimposta il punto di partenza. Sono necessari solo i dati del punto di partenza per le query impaginate, mai il primo (anche se potrebbe essere utile se si dispone di dati che non restituiscono qualcosa che è possibile utilizzare, potrebbe essere necessario memorizzare il datetime richiesto prima di chiamare e passare quello per impedire che una nuova voce appaia tra il tempo richiesto e i risultati restituiti.

    
risposta data 15.04.2015 - 11:11
fonte
0

Non può esserci alcuna regola generale.

Se tutti gli articoli di A sono più recenti di B, perché ti aspetteresti qualche articolo B nell'elenco?

Hai bisogno di definire il tuo comportamento previsto e prendere una decisione basata su questo. Pensa anche a cosa succede se una risorsa non è disponibile al momento della query ecc.

    
risposta data 15.04.2015 - 10:49
fonte

Leggi altre domande sui tag