行キーで複合データ型を使用しています。列ファミリーは以下のとおりです
create column family CompositeTest
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(UTF8Type,UTF8Type)'
and default_validation_class = 'UTF8Type';
この列ファミリーのサンプル データは次のとおりです。
RowKey: s2:2222222
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s2:3333333
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s2:1111111
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:3333333
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:2222222
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:1111111
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
行キーの最初のコンポーネントが「s1」であるすべての行を取得したい。Hector クライアントを使用することは可能ですか? そうでない場合、どのcassandraクライアントで可能ですか?
次のコードを使用して試しましたが、機能しません。
Composite start = new Composite();
start.addComponent(0, "s1", ComponentEquality.EQUAL);
Composite end = new Composite();
end.addComponent(0, "s1", ComponentEquality.GREATER_THAN_EQUAL);
RangeSlicesQuery<Composite, String, String> rangeSlicesQuery = HFactory.createRangeSlicesQuery(keyspace, new CompositeSerializer(), StringSerializer.get(), StringSerializer.get());
rangeSlicesQuery.setKeys(start, end);
rangeSlicesQuery.setRange("param1", "param3", false, 100);
rangeSlicesQuery.setColumnFamily("CompositeTest");
rangeSlicesQuery.setRowCount(11);
QueryResult<OrderedRows<Composite, String, String>> queryResult = rangeSlicesQuery.execute();
Rows<Composite, String, String> rows = queryResult.get();
Iterator<Row<Composite, String, String>> rowsIterator = rows.iterator();
前もって感謝します...