CompositeType部分的Cassandra切片查询

CompositeType部分的Cassandra切片查询,cassandra,composite-key,Cassandra,Composite Key,我有一个由四个字段组成的组合列:(field1、field2、field3、field4)。我需要执行以下切片查询: 1.获取field2具有特定值且其他字段不重要的所有组合列。假设一个行键有三个组合列:('ACTIVE','35','Name','Time'),('INACTIVE','35','City','Country')和('PASSIVE','25','Time','Zone')。给定行键和字段3的值为'35',我应该得到前两个复合列的结果。如有任何建议,将不胜感激 field1可以

我有一个由四个字段组成的组合列:(field1、field2、field3、field4)。我需要执行以下切片查询:
1.获取field2具有特定值且其他字段不重要的所有组合列。假设一个行键有三个组合列:('ACTIVE','35','Name','Time'),('INACTIVE','35','City','Country')和('PASSIVE','25','Time','Zone')。给定行键和字段3的值为'35',我应该得到前两个复合列的结果。如有任何建议,将不胜感激

field1可以有多少不同的值?具有组合键的列首先按第一个维度排序,然后按下一个维度排序,依此类推。要检索field2=x的所有值,您必须至少执行| field1 |读取,或扫描整行。你考虑过交换field2和field1吗?这将使这个查询更容易

如果需要用Field1xx对所有值进行查询,并且分别想用Field2= Y进行查询,则还可以考虑将数据插入两次,对于复合键的维度有不同的排序。如果你只写一次日期,这是最有效的。如果这是不可接受的,那么唯一的选择是执行三个查询:

[“活动的”y;“;”]->[“活动的”y;“;”] [“非活动”y:;“”]->[“非活动”y:;“”] [“被动的”y;“;”->[“被动的”y:“;”]


如果field1有三个以上的可能值,这就不太好用了。

field1可以有多少不同的值?带有组合键的列会先按第一个维度排序,然后按下一个维度排序,依此类推。要检索field2=x的所有值,您必须至少进行| field1 |读取,或扫描整行。您有反对意见吗考虑交换field2和field1?这将使此查询更容易。@tom.wilkie,您应该将此作为答案而不是注释。我也需要使用field1执行查询,这也是我将其放在首位的原因。此外,在我的情况下,field1只能有三个唯一的值(主动、非活动和被动).Field2是一个ID,可以有数百万个唯一值。其他字段也是如此。