質問: Cassandra Slice CompositeTypeの一部のクエリ 私は4つのフィールド(フィールド1、フィールド2、フィールド3、フィールド4)で作られた複合列を持っています。次のスライスクエリを実行する必要があります。 1.フィールド2が特定の値を持ち、他のフィールドが重要でないすべての複合列を取得します。 ( 'ACTIVE'、 '35'、 'Name'、 'Time')、( 'INACTIVE'、 '35'、 'City'、 'Country')の3つの複合列があるとします。 ( 'PASSIVE'、 '25'、 'Time'、 'Zone')。フィールド3の行キーと値が '35'であるため、最初の2つの複合カラムで結果を取得する必要があります。どんな提案も高く評価されます。
回答: フィールド1にはいくつの値がありますか?複合キーを持つ列は、最初に最初の次元、次に次の次元などでソートされます。 field2 = xですべての値を取得するには、少なくとも| field1 |読み取り、または行全体をスキャンします。あなたはフィールド2とフィールド1の交換を考えましたか?そうすれば、このクエリが簡単になります。 field1 = xのすべての値に対してクエリを実行する必要があり、field2 = yを使用してクエリを個別に実行する必要がある場合は、複合キーのディメンションの順序が異なるようにデータを2回挿入することもできます。これは、日付が追記型である場合に最適です。これが受け入れられない場合、唯一のオプションは3つのクエリを行うことです: ["ACTIVE";y;"";""] -> ["ACTIVE";y;"";""] ["INACTIVE";y:"";""] -> ["INACTIVE";y:"";""] ["PASSIVE";y;"";"" -> ["PASSIVE";y:"";""] field1に可能な値が3つ以上ある場合、これはうまく動作しません。