C# Cassandra允许在C中进行过滤
首先,我不熟悉卡桑德拉数据库,并且已经阅读了手册。现在,我正在构建一个基本页面,以便在新数据库中插入和选择几行。数据库仅包含1个表,一个用户表如下所示: 接下来,我使用以下代码从此表中检索数据:C# Cassandra允许在C中进行过滤,c#,cassandra,cql,C#,Cassandra,Cql,首先,我不熟悉卡桑德拉数据库,并且已经阅读了手册。现在,我正在构建一个基本页面,以便在新数据库中插入和选择几行。数据库仅包含1个表,一个用户表如下所示: 接下来,我使用以下代码从此表中检索数据: Connect(); Row result = session.Execute("select * from users where last_name ='Jansen'").First(); Console.WriteLine("{1} {2}", r
Connect();
Row result = session.Execute("select * from users where last_name ='Jansen'").First();
Console.WriteLine("{1} {2}", result["first_name"], result["last_name"]);
cluster.Shutdown();
每当执行select语句时,都会出现以下错误:
'Cassandra.InvalidQueryException' occurred in Cassandra.dll
其他信息:无法执行此查询,因为它可能涉及数据筛选,因此可能具有不可预测的性能。如果要在性能不可预测的情况下执行此查询,请使用“允许筛选”
但我从手册中了解到,允许过滤不应应用于此查询,所以基本上为什么会发生这种情况
我更重要的问题是,我如何修正这个错误
更新:表架构如下所示,
表用户
用户id文本主键,
名字文本,
姓氏文本
但我从手册中了解到,允许过滤不应应用于此查询,所以基本上为什么会发生这种情况
恐怕你的理解是错误的。您希望对非主键列进行筛选。在Cassandra中,您需要为此添加允许过滤
你能试试吗
从last_name='Jansen'允许筛选的用户中选择*
但请记住,这相当于
从用户中选择*并从结果中筛选数据。因此,这是一个非常繁重的操作,会对性能造成巨大影响。您能给我们提供表架构吗?@Will-Yes,updatedOh-Yes,您是对的。我忽略了允许对非主键字段应用筛选的要点。