Een begin met MongoDB zou zijn om elk bericht te ontleden op hashtags die de gebruiker heeft gebruikt en deze in een subarray van het document te plaatsen. Voorbeeld statusupdate:
Dit bericht zou er als volgt uitzien in 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"
]
}
Wanneer u vervolgens een index maakt op db.collection.hashtags
je kunt snel zoeken naar alle berichten die een van deze hashtags bevatten. U wilt waarschijnlijk de resultaten sorteren en beperken op datum, zodat de gebruiker de meest recente resultaten als eerste ziet. Als je er een samengestelde index van maakt die ook de datum bevat, kun je dat ook versnellen.
Hoe "trending" onderwerpen te implementeren is een vrij complexe vraag. Het is ook erg subjectief, afhankelijk van wat u als "trending" zou beschouwen. De exacte algoritmen die Twitter of Facebook gebruiken om te bepalen welke onderwerpen trending zijn of niet, zijn niet openbaar. Volgens verschillende social media analisten veranderen ze die ook regelmatig, dus we kunnen er vanuit gaan dat ze inmiddels behoorlijk complex zijn.
Dat betekent dat we je niet kunnen helpen om zelf een algoritme te bedenken. Maar als je al een algoritme in gedachten hebt om de "trendyness" van een hashtag te berekenen, kunnen we je misschien helpen om een goede implementatie te vinden.