出现此错误的原因是您没有添加
ALLOW FILTERING
如果添加了
允许筛选
在查询结束时,它应该可以工作。
使用
允许筛选
在Cassandra中,查询实际上允许Cassandra在加载某些行之后(可能在加载表中的所有行之后)将其过滤掉。例如,在查询的情况下,Cassandra可以执行此查询的唯一方法是从UserApplications表中检索所有行,然后筛选出那些没有您所限制的每一列的请求值的行。
使用
允许筛选
可能会产生不可预测的性能结果,而实际性能取决于表中的数据分布。例如,如果您的表包含100万行,其中95%的行具有指定查询的列的请求值,则仍然相对有效,您应该使用ALLOW筛选。另一方面,如果表包含100万行,而只有2行包含所请求的值,那么查询效率极低。卡桑德拉将免费加载99998行。通常,如果您的查询需要添加
允许筛选
然后,您可能应该重新考虑您的模式,或者为您经常查询的列添加辅助索引。
CREATE TABLE db.user_applications (
user_id uuid,
application_id uuid,
membership_id uuid,
created_date timestamp,
status int,
update_date timestamp,
PRIMARY KEY ((user_id, application_id, membership_id))
);