如何在cassandra中创建包含多列的查询

时间:2016-04-15 21:24:30

标签: scala cassandra datastax

对于类似下面的情况

CREATE TABLE test (
   foo text,
   bar set<text>,
   other int
   stuff ascii
   PRIMARY KEY(foo, bar)
);

查询

SELECT * FROM test WHERE (foo, bar) IN (("foo", "foo"))

如果foo == "foo" and bar.contains("foo")foo == "foo" or bar.contains("foo")或某些完全不同的内容返回某些内容? 我想foo == "foo" or bar.contains("foo")我应该怎么做? 是否可以使用cassandra 3和scala / java中的dataStax查询构建器构建包含多列的查询?

1 个答案:

答案 0 :(得分:2)

不幸的是,在Cassandra中还没有OR条款。该支持作为SASI索引的一部分添加:https://docs.datastax.com/en/cql/3.3/cql/cql_using/useSASIIndex.html

您可以在此处查看进度:https://issues.apache.org/jira/browse/CASSANDRA-10765

由于您对只能使用群集列找到的行感兴趣,因此您将依赖此查询的某种辅助索引。