二级索引列上的CQL和范围

时间:2012-08-13 17:13:41

标签: cassandra cql

以下CQL查询导致错误

  

by-columns子句中没有带有等号运算符的索引列

请注意,列age已经二次索引。

select * from employee where age > 25

但是我有另一个二级索引列type。所以,当我用那个......

select * from employee where type='engineer' and age > 25

我似乎得到了适当的结果。

这是怎么发生的?

1 个答案:

答案 0 :(得分:13)

Cassandra的内置二级索引更像是哈希样式索引,而不是B树。

因此,至少需要一次相等比较才能有效地执行查找(任何其他列谓词都会导致对相等匹配进行后期过滤)。

尝试使用以下维基页面,了解有关Cassandra二级索引的问题的正确起点:http://wiki.apache.org/cassandra/SecondaryIndexes