2015-01-24 3 views
6

Wenn Sie in Cassandra suchen wollen, wurde mir gesagt, dass Sie etwas wie ElasticSearch oder Solr verwenden müssen.Wie hat FaceBook Cassandra für die Inbox-Suche verwendet, wenn Caasandra keine Suchfunktionen hat?

Wie kann das wahr sein, wenn Cassandra ursprünglich gebaut wurde, um die Inbox-Suche von FaceBook zu betreiben?

"Apache Cassandra wurde ursprünglich auf Facebook entwickelt, um die Inbox Search-Funktion von Avinash Lakshman (einem der Autoren von Amazon Dynamo) und Prashant Malik zu unterstützen."

http://en.wikipedia.org/wiki/Apache_Cassandra

Antwort

3

Die Grundidee ist, dass Sie die Benutzer-ID als Partitionsschlüssel verwenden, und dann werden alle Informationen, die Sie für einen Posteingang Suche benötigt, als Zeilen in dieser Partition gruppiert werden. Sie können dann mehrere Tabellen mit verschiedenen Arten von Daten in der Partition gruppieren, um verschiedene Arten von Suchen zu unterstützen. Da Cassandra selbst bei Millionen von Benutzern auf eine Partition in einer im Wesentlichen konstanten Zeit zugreifen kann, kann das System skalieren und schnell bleiben, wenn Sie Knoten und Benutzer hinzufügen.

Sie können eine Beschreibung des ursprünglichen Systems hier in Abschnitt 6.1 Facebook Inbox suchen: Facebook's Cassandra Paper.

Die Beschreibung verwendet ältere Cassandra Terminologie wie super Spalten usw.

+0

Ah - und es sieht aus wie Facebook Inbox ‚Suche‘ nur die Suche nach Namen und nicht dem Nachrichteninhalt. Wenn Sie diese suchen möchten, benötigen Sie eine Solr- oder Elasticsearch-Lösung –

Verwandte Themen