0

次のコード セグメントがあります。複合列には 2 つのコンポーネントがあります。最初のコンポーネントしか知らない場合、列を取得することはできますか? ある意味では、コンポジットのいくつかのコンポーネント (特に最後のコンポーネント) にいくつかの dilcards 選択を適用します。

ありがとう。

 Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer);
    String key="TX:512";
    String CF="StateNpaIndexStatic";
    HColumnImpl<Composite, String> column = new HColumnImpl<Composite, String>(cs, StringSerializer.get());
    column.setClock(keyspace.createClock());
    Composite dc = new Composite();
    dc.add(0, "review");
    dc.add(1, "T23333");
    column.setName(dc);       
    column.setValue("aa");
    mutator.addInsertion(key, CF, column);
    mutator.execute();
     Composite start = new Composite();
    start.add(0, start0);
    start.add(1,"*");
    Composite end = new Composite();
    end.add(0, end0);
    end.add(1, "*");

    SliceQuery<String,Composite, String> sliceQuery =HFactory.createSliceQuery(keyspace,stringSerializer, CompositeSerializer.get(), StringSerializer.get());
    sliceQuery.setColumnFamily(CF);
    sliceQuery.setKey(key);
    sliceQuery.setRange(start, start, false, 1);
    QueryResult<ColumnSlice<Composite, String>> result = sliceQuery.execute();
    System.out.println("Result :"+result.get().getColumns().size()+"=========="+result);
4

1 に答える 1

0

コンポジット内のすべてのコンポーネントを指定する必要はありません。通常の列の get_slice クエリに空の範囲を渡すのと同じように、最後 (途中や最初ではありません) にあるものを見逃して、これらに対して範囲クエリを実行できます。

あなたの例で、クエリを実行した場合

Composite start = new Composite();
start.addComponent(0, start0, ComponentEquality.EQUAL);
Composite end = new Composite();
end.add(0, end0, ComponentEquality.GREATER_THAN_EQUAL);

start0 から end0 までのすべてを取得します。ComponentEquality フラグは、終了範囲を含めるか除外するかを設定します。上記のものには、開始と終了の両方が含まれます。ComponentEquality.GREATER_THAN_EQUAL; で先頭を除外します。最終使用 ComponentEquality.EQUAL を除外するには。

于 2013-05-28T16:00:38.950 に答える