Un comienzo con MongoDB sería analizar cada mensaje en busca de hashtags que usó el usuario y colocarlos en una sub-matriz del documento. Ejemplo de actualización de estado:
Este mensaje se vería así en MongoDB:
{
author: "Peter",
date: ISODate("2014-04-29 12:28:34"),
text: "Hello friends, I visited the #tradeshow in #washington and drank a delicious #coffee",
hashtags: [
"tradeshow",
"washington",
"coffee"
]
}
Cuando crea un índice en db.collection.hashtags
puede buscar rápidamente todos los mensajes que incluyen uno de estos hashtags. Es probable que desee ordenar y limitar los resultados por fecha para que el usuario vea primero los resultados más recientes. Cuando lo convierte en un índice compuesto que también incluye la fecha, también puede acelerarlo.
Cómo implementar temas "trending" es una cuestión bastante compleja. También es muy subjetivo dependiendo de lo que consideres "tendencia". Los algoritmos exactos que usan Twitter o Facebook para determinar qué temas son tendencia o no no son públicos. Según varios analistas de redes sociales, también los cambian con frecuencia, por lo que podemos suponer que ahora son bastante complejos.
Eso significa que no podemos ayudarlo a crear un algoritmo por su cuenta. Pero si ya tienes en mente un algoritmo para calcular la "moda" de un hashtag, podemos ayudarte a encontrar una buena implementación.