查询包含具有给定值的集合的所有行的Cassandra表

时间:2014-05-21 11:18:57

标签: cassandra cql

假设我们有一个名为messages的Cassandra表,其中包含列:

id int primary key
subject text
recipients set<text>

我们如何选择具有特定收件人集的所有邮件?我无法在CQL中找到这样的选项。如果不可能,那么你能建议一个可以容纳这种查询的替代模式吗?

1 个答案:

答案 0 :(得分:1)

C * 2.0不支持集合上的二级索引。

来自CQL improvements in Cassandra 2.0

  

但是请注意,C * 2.0中仍然不支持收集列的二级索引。这将在以后发生。

在这种情况下,您需要以不同方式对数据建模以在收件人上进行查询。请记住,C *建模都是Query Driven,因此您希望将收件人作为您的rowkey。

create table message_recipients (recipient text, message_id int, primary key (recipient));