【发布时间】:2011-03-18 19:26:11
【问题描述】:
我需要能够仅使用 、= 对二级索引执行搜索。我知道 Cassandra 至少需要一个相等索引子句,因为它会遍历该相等索引的所有结果。
是否有任何技巧可以仅使用 、=(至少在概念上)来执行操作?这是个坏主意吗?
另外,有人知道是否有计划在 Cassandra 中改变这一点?
谢谢!
【问题讨论】:
我需要能够仅使用 、= 对二级索引执行搜索。我知道 Cassandra 至少需要一个相等索引子句,因为它会遍历该相等索引的所有结果。
是否有任何技巧可以仅使用 、=(至少在概念上)来执行操作?这是个坏主意吗?
另外,有人知道是否有计划在 Cassandra 中改变这一点?
谢谢!
【问题讨论】:
如果有一个使用 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) 中的位图索引将支持对索引的不等式运算。
【讨论】: