如果 Caasandra 没有搜索功能,FaceBook 如何使用 Cassandra 进行收件箱搜索?

How did FaceBook use Cassandra for inbox search, if Caasandra has no search capabilities?

如果您想在 Cassandra 中进行搜索,有人告诉我您需要使用 ElasticSearch 或 Solr 之类的东西。

如果 Cassandra 最初是为支持 FaceBook 的收件箱搜索而构建的,那怎么可能呢?

"Apache Cassandra was initially developed at Facebook to power their Inbox Search feature by Avinash Lakshman (one of the authors of Amazon's Dynamo) and Prashant Malik."

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

基本思路是使用用户 ID 作为分区键,然后收件箱搜索所需的所有信息都将聚集为该分区中的行。然后,您可以像这样设置多个表,将不同类型的数据聚集在分区中,以支持不同类型的搜索。由于 Cassandra 可以在基本恒定的时间内访问分区,即使有数百万用户,系统也可以扩展并在您添加节点和用户时保持快速。

您可以在第 6.1 节 Facebook 收件箱搜索中阅读初始系统的描述:Facebook's Cassandra Paper

描述使用了旧的 Cassandra 术语,如超级列等。