Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Implementieren von Twitter- und Facebook-ähnlichen Hashtags

Ein Anfang mit MongoDB wäre, jede Nachricht auf vom Benutzer verwendete Hashtags zu analysieren und diese in ein Unterarray des Dokuments einzufügen. Beispiel Statusaktualisierung:

Diese Nachricht würde in MongoDB so aussehen:

{
    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"
    ]
}

Wenn Sie dann einen Index auf db.collection.hashtags erstellen Sie können schnell nach allen Nachrichten suchen, die einen dieser Hashtags enthalten. Wahrscheinlich möchten Sie die Ergebnisse nach Datum sortieren und einschränken, damit der Benutzer die neuesten Ergebnisse zuerst sieht. Wenn Sie daraus einen zusammengesetzten Index machen, der auch das Datum enthält, können Sie das auch beschleunigen.

Wie man „Trending“-Themen umsetzt, ist eine recht komplexe Frage. Es ist auch sehr subjektiv, je nachdem, was Sie als "Trend" betrachten würden. Die genauen Algorithmen, die Twitter oder Facebook verwenden, um festzustellen, welche Themen im Trend liegen oder nicht, sind nicht öffentlich. Laut verschiedenen Social-Media-Analysten ändern sie diese auch häufig, sodass wir davon ausgehen können, dass sie mittlerweile recht komplex sind.

Das heißt, wir können Ihnen nicht helfen, selbst einen Algorithmus zu entwickeln. Aber wenn Sie bereits einen Algorithmus im Sinn haben, um die "Trendigkeit" eines Hashtags zu berechnen, können wir Ihnen helfen, eine gute Implementierung zu finden.