Sto cercando di capire la progettazione del sistema alla base di Google Trends (o di qualsiasi altra funzione di tendenza su larga scala come Twitter).Progettazione di sistema di Google Trends?
Sfide:
bisogno di elaborare grandi quantità di dati per calcolare tendenza.
supporto Filtering - dal tempo, regione, categoria ecc
Hai bisogno di un modo per memorizzare per l'elaborazione archiviazione/offline. Il supporto per il filtro potrebbe richiedere l'archiviazione a più dimensioni.
Questo è ciò che la mia ipotesi è (Io ho zero esperienza pratico di tecnologie di MapReduce/NoSQL)
Ogni tema da utente manterrà insieme di attributi che saranno memorizzati ed eventualmente trattati.
Oltre a mantenere lista di ricerche effettuate da data e ora, regione di ricerca, categoria ecc
Esempio:
Ricerca di Kurt Cobain
termine:
Kurt-> (Time stamp, Region of search origin, category ,etc.)
Cobain-> (Time stamp, Region of search origin, category ,etc.)
Domanda:
Come calcolano in modo efficiente la frequenza dei termini di ricerca?
In altre parole, dato un grande set di dati, come fanno a trovare i 10 articoli più frequenti in modo distribuito in scala?
Inoltre è necessario considerare il fattore di decadimento temporale –
Penso che utilizzando speciali strutture dati strutturate in modo da accelerare la ricerca delle tendenze, i dati siano disposti in modo da pre-elaborarli per tutte le funzionalità aperte per milioni di utenti online –
Apparentemente non posso votare per chiudere una domanda a cui qualcun altro ha offerto una taglia, ma a me questa domanda sembra off-topic/troppo ampia: ci sono molte tecnologie e aree di ricerca legate a questo argomento, e non c'è modo una risposta potrebbe incapsularle se non collegandole ad alcune risorse più adatte come un libro di testo o un sito web dedicato. Per parafrasare una delle linee guida nel centro assistenza: "se puoi immaginare un'intera carriera o un piano aziendale basato sulla ricerca della risposta, la domanda è probabilmente troppo ampia". – IMSoP