我有一个问题要查询cassandra集合。
我想进行一个与馆藏搜索一起使用的查询。
CREATE TABLE rd_db.test1 (
testcol3 frozen<set<text>> PRIMARY KEY,
testcol1 text,
testcol2 int
)
表结构是这个...
和
这是表格的内容。
在这种情况下,我想使cql查询在set列上具有替代选项值。
如果它是sql并且testcol3不是集合,
select * from rd.db.test1 where testcol3 = 4 or testcol3 = 5
但这是cql和集合。。我尝试
select * from test1 where testcol3 contains '4' OR testcol3 contains '5' ALLOW FILTERING ;
select * from test1 where testcol3 IN ('4','5') ALLOW FILTERING ;
但是这两个查询不起作用...
请帮助...
答案 0 :(得分:0)
这对您不起作用有多种原因:
OR
操作testcol3
)的值进行完全匹配您需要更改数据模型,但需要提前知道要执行的查询。从简要了解您的数据模型开始,我建议将set字段展开为多行,其中各个字段对应各个分区。
但是我建议您使用DS201和DS220 courses on DataStax Academy site,以更好地了解Cassandra的工作原理以及如何为它建模数据。