假设我们有一个名为messages
的Cassandra表,其中包含列:
id int primary key
subject text
recipients set<text>
我们如何选择具有特定收件人集的所有邮件?我无法在CQL中找到这样的选项。如果不可能,那么你能建议一个可以容纳这种查询的替代模式吗?
答案 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));