EDIT1:在原始问题之后添加了一个案例来描述问题。
我希望查询不属于我的键的列。如果我理解正确,我需要在该列上定义一个二级索引。但是,我希望使用大于条件(不仅仅是相等条件),这似乎仍然不受支持。
我错过了什么吗?你会如何解决这个问题?
我想要的设置:
Cassandra 1.1.6
CQL3
CREATE TABLE Table1(
KeyA int,
KeyB int,
ValueA int,
PRIMARY KEY (KeyA, KeyB)
);
CREATE INDEX ON Table1 (ValueA);
SELECT * FROM Table1 WHERE ValueA > 3000;
由于 Cassandra 1.1.6 仍然不支持使用复合键在 ColumnFamilies 上定义二级索引,因此我必须解决删除其中一个键的临时解决方案,但我仍然遇到不相等条件的相同问题。
有没有另一种方法来解决这个问题?
感谢您的时间。
相关来源: http ://cassandra.apache.org/doc/cql3/CQL.html#selectStmt http://www.datastax.com/docs/1.1/ddl/indexes
编辑1
这是一个可以解释问题的案例。正如 rs-atl 所指出的,这可能是一个数据模型问题。假设我在 stackoverflow 上保留了所有用户的列族。对于每个用户,我保留了一批统计数据(Reputation、NumOfAnswers、NumOfVotes ......它们都是整数)。我想查询这些统计信息以获取相关用户。
CREATE TABLE UserStats(
UserID int,
Reputation int,
NumOfAnswers int,
.
.
.
A lot of stats...
.
.
.
NumOfVotes int,
PRIMARY KEY (UserID)
);
现在我有兴趣根据这些统计数据对 UserID 进行切片。我想要所有信誉超过 10K 的用户,我想要所有答案少于 5 个的用户,等等。
我希望这会有所帮助。再次感谢。