我有一个 Cassandra 表,它包含一个名为“marks”的列。它不是主键的一部分。
现在,我希望运行这样的操作: select * from mytable WHEREmarks in (58,88);
如何实现这一目标?我也想通过 Stargate API 运行相同的东西。我尝试禁用分页但不起作用。 SAI和SASI索引似乎没有帮助。这是我尝试运行的 Stargate URL。数据库要求我允许过滤
http://localhost:8082/v2/keyspaces/mykeyspace/mytable?where={"marks":{"$in":[58,88]}}
如果
marks
列不是表主键的一部分,则您不能像在REST API中那样直接在where子句中使用。
相反,您可以使用以下方法创建索引(通过相同的 CQL 控制台屏幕/选项卡):
CREATE CUSTOM INDEX mykeyspace_mytable_marks_idx ON mykeyspace.mytable(marks) USING 'StorageAttachedIndex';
提示:
WHERE
子句可与其他有效搜索词一起使用:$eq
、$in
、$lt
、$lte
、$gt
、$gte
、$ne
和 $exists
,如果适用的话。
额外参考: