8

下面的 CQL 查询导致错误提示

具有等于​​运算符的 by-columns 子句中不存在索引列

请注意,该列age已被二级索引。

select * from employee where age > 25

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

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

我似乎得到了正确的结果。

这是怎么发生的?

4

1 回答 1

13

Cassandra 的内置二级索引更像是散列式索引,而不是 B 树。

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

尝试以下 wiki 页面,了解有关 Cassandra 二级索引的问题的一个不错的起点:http ://wiki.apache.org/cassandra/SecondaryIndexes

于 2012-08-13T20:56:29.887 回答