我的数据模型看起来像这样
#keyspace_name{
#columnfamily1
{startDate_mobileNo: // row key
{ Call_TYpe: // super column
{ xyz: value
endDate : value;
}
}
}
现在我想让搜索结果过滤startDate_mobileNo,Call_TYpe和endDate。 这可以通过将endDate作为二级索引来完成。但是超级列中的二级索引是不可能的。所以我无法想象如何继续。是的,我可以通过使用简单的java编码过滤结果数据来执行二级索引过滤部分。但我想这不是正确的想法,因为大数据可能存在稀缺性。所以请给我一些想法。
提前致谢
答案 0 :(得分:3)
我相信你可以使用复合键获得你想要的东西,它在Cassandra 1.1中拥有新的一流CQL支持。有关更多信息,请参阅this blog post about modeling with composites。
Supercolumns绝对是错误的方式 - 它们总是有些问题,现在已被弃用,您可以使用复合材料从中获得所需的一切。
如果我正确地解释您的模型,您可能会执行以下操作:
CREATE TABLE columnfamily1 (
startDate timestamp,
mobileNo text,
Call_TYpe int,
endDate timestamp,
xyz text,
PRIMARY KEY (startDate, mobileNo, Call_TYpe)
);
如果需要,您还可以在endDate上创建二级索引。我不清楚你是否愿意。
如果您想提供您需要支持的各种查询的更具体的示例,我可以提供更多帮助。