Presentación de los resultados SOLR se fusionaron con los datos de usuario individual

StackOverflow https://stackoverflow.com/questions/3434737

  •  26-09-2019
  •  | 
  •  

Pregunta

Estoy buscando una estrategia para presentar la clasificación de un usuario individual en un documento Solr. es decir. Los usuarios obtienen poner dará una calificación de 1-5 en un documento y que quieren presentar ese nuevo a ellos en su búsqueda.

Me puede pensar en dos enfoques generales.

  1. Tienda las votaciones en mi consulta RDBMS y que después de conseguir resultados Solr y fusionar los datos de la lógica de negocio.

  2. De alguna manera también almacenar esta información en Solr calificación por lo que se vuelve con los datos de un usuario determinado. Todo lo que puedo pensar es en los atributos de nombres con el identificador de usuario y un valor de calificación.

Si se asume una gran base de usuarios, que se preocupe enfoque 2 podría ir de las manos. ¿Cómo "amplia" se puede ir con un documento Solr? Se puede poner decenas de miles de atributos en un documento? Sería el impacto en el rendimiento aún dejan enfoque 2 mejor que un segundo golpe en una base de datos SQL (método 1)?

¿Hay otros enfoques que no estoy pensando?

¿Fue útil?

Solución

He usado varios enfoque 1. Dado que el número de clasificaciones es baja (probablemente menos de 1000) por usuario, sólo cacheamos todas sus calificaciones al iniciar sesión y guardar en la memoria. Entonces, cuando se muestran los resultados SOLR, es muy rápido para aplicar sólo las calificaciones cuando sea necesario.

Esto le ahorra tener una llamada de base de datos para cada resultado y no saturar el servidor demasiado. Además, cuando un usuario actualiza sus calificaciones, que acaba de actualizar la base de datos e invalidar la caché. Usted no tiene que hacer una llamada de actualización en un documento SOLR.

Otros consejos

Una tercera opción podría ser la de añadir un índice adicional Solr que contiene sólo el ID de documento, ID de usuario y la puntuación aattributed a dicho documento por parte del usuario. Entonces sería muy simple y rápida para consultar la puntuación por documento y el usuario.

Me gustaría ir con el número 2, y sólo actualizar periódicamente la calificación. De esa manera se puede mezclar en la calificación en la relevancia calcula la puntuación de Solr.

creo que depende de si usted es como Digg / Reddit, donde el arriba / abajo votando drásticamente los impactos lo que se muestra, o si es sólo un factor en la puntuación, como la forma de nuevo el documento es. Si es sólo otro factor, a continuación, actualizar su documento una vez al día, a la semana o una vez al mes en las horas tranquilas ....

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top