2011-03-18 82 views
6

我需要能够使用<,>,< =或> =来执行二级索引搜索。我知道Cassandra至少需要一个相等索引子句,因为它会遍历该相等索引的所有结果。如何搜索Cassandra中的二级索引而不平等?

是否有任何技巧只使用<,>,< =或> =(至少在概念上)执行操作?这是一个坏主意吗?

另外,有没有人知道是否有计划在卡桑德拉改变这种情况?

谢谢!

回答

6

如果有一个很好的方法来处理0.7索引,我们会在http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes中提到它,而不是说“你需要一个平等表达式”。没有双重秘密作弊码。

一种替代方法是使用ByteOrderedPartitioner(它可以让您对行键执行查询操作)。另一个可能是在写入时为您的数据的一部分创建物化视图。这是假设你有足够的行,只是做一个无序的顺序扫描太慢了。

0.8(https://issues.apache.org/jira/browse/CASSANDRA-1472)中的位图索引将支持索引上的不等式操作。

+0

另请参阅https://issues.apache.org/jira/browse/CASSANDRA-1339。还要注意的是,截至撰写本文时,0.8版本已经发布,并且该功能还没有出现,并且在问题跟踪器上,最近对1472的评论是在〜3个月前发布的,最后发布的补丁是〜9个月前。 (我不是Cassandra的开发者和jbellis,我只是一个潜在的用户,试图估计这个功能何时可用) – bshanks 2011-09-18 20:08:22