Domanda

Sto cercando una strategia di presentare un voto singolo utente su un documento solr. vale a dire. Gli utenti ottengono di mettere dare un punteggio 1-5 su un documento e voglio presentare che torna a loro, alla ricerca.

mi viene in mente due approcci generali.

  1. Conservare i feedback nella mia RDBMS e di query dopo avere ottenuto risultati Solr e unire i dati in logica di business.

  2. In qualche modo anche memorizzare queste informazioni rating in solr quindi torna con i dati per un determinato utente. Tutto quello che posso pensare è attributi nomi con l'ID utente e un valore di rating.

Assumendo una larga base di utenti, mi preoccupo approccio 2 potrebbe sfuggire di mano. Come "wide" si può andare con un documento solr? Si può mettere decine di migliaia di attributi su un documento? Sarebbe l'impatto sulle prestazioni lasciano ancora approccio 2 meglio di un secondo colpo su un db SQL (approccio 1)?

Ci sono altri approcci non sto pensando di?

È stato utile?

Soluzione

Ho usato il numero approccio 1. Poiché il numero dei voti è bassa (probabilmente meno di 1000) per utente, ho appena Caché tutte le loro valutazioni su login e conservare in memoria. Poi, quando mostra i risultati Solr, è molto veloce da applicare solo i feedback dove necessario.

In questo modo si evita di dover una chiamata al database per ogni risultato e non impantanarsi il server troppo. Inoltre, quando un utente aggiorna le loro valutazioni, basta aggiornare il DB e invalidare la cache. Non è necessario effettuare una chiamata UPDATE a un documento SOLR.

Altri suggerimenti

Una terza opzione potrebbe essere quella di aggiungere un indice Solr aggiuntivo che contiene solo l'ID del documento, id utente e il punteggio aattributed a tale documento da parte dell'utente. Sarebbe allora molto semplice e rapido per interrogare il punteggio dal documento e dell'utente.

vorrei andare con il numero 2, e solo aggiornare periodicamente il rating. In questo modo si può mescolare nel rating nella pertinenza punteggio calcolato Solr.

Penso che dipende se siete come Digg / Reddit, dove l'alto / basso voto drasticamente gli impatti ciò che viene mostrato, o se è solo un altro fattore nel punteggio, come il modo nuovo il documento è. Se è solo un altro fattore, quindi aggiornare il documento una volta al giorno, una settimana o una volta al mese in ore tranquille ....

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top