cassandra - Cassandra 3.11,按列表过滤结果(搜索替代品)
问题描述
我想要求 cassandra 通过参数列表过滤其结果。但这在“正常”列上是不可能的。或者用 cassandra 的话来说:
IN predicates on non-primary-key columns (access_right_id) is not yet supported
我的表如下所示:
CREATE TABLE "service"
(
course_id uuid,
type text,
access_token uuid,
name_de text,
name_en text,
url text,
edit_right_id uuid,
access_right_id uuid,
PRIMARY KEY (course_id, type, access_token)
);
我想执行这样的查询:
SELECT * FROM service WHERE
course_id = :courseId
AND type = :type
AND access_right_id IN :rights
我现在正在寻找解决我的问题的方法。我正在考虑三种可能的解决方案:
- 发送 N 次查询(可能带有物化视图并
access_right_id
作为主键部分(集群键))SELECT * FROM service WHERE course_id = :courseId AND type = :type AND access_right_id = :right
- 像这样发送一个生成的查询:
SELECT * FROM service WHERE course_id = :courseId AND type = :type AND (access_right_id = :right1 OR access_right_id = :right2 OR access_right_id = :right ...)
- 发送查询而不过滤并过滤代码中的结果。
在这种情况下,你觉得这是最好的吗?什么是更“顺从”的 cassandra?
预先感谢您的意见。
解决方案
推荐阅读
- tensorflow - tensorflow keras 序列模型 - 如何仅预测最后一步的输出
- spring - Spring Cloud Gateway 服务器启动时出现问题?
- apache-spark - 如何在集群部署模式下管理作业依赖
- shell - Sox - 使用 Shell 脚本对音频文件进行批量标准化的 Automator 文件夹操作
- javascript - 功能组件和对象值
- python - 将 pandas DataFrame 列拆分为 OneHot/Binary 列
- android - 调整当前宽度相等的单个线性布局子元素的宽度?
- firebase - 在 GitLab 中安装 Firebase 工具的权限被拒绝错误
- apache-nifi - Apache Nifi 1,8,0 和 CryptographicHashContent
- java - 嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造 `com.xyz.pqr.model.Date` 的实例