ヘクター: hector-core-1.0-5 Cassandra-1.1.2
次のように、Hector でクエリをモデル化する必要があります。
select * from table1 where rowkey='x' and secondary_indexed_column='y'
setStartKey を rowKey 'x' に設定して IndexedSliceQuery を使用すると、secondary_indexed_column='y' を含むすべての行が取得されます。addEqualsExpression("row_key",'x') に row_key フィールドを追加すると、次の例外が発生します。
org.apache.thrift.protocol.TProtocolException: Required field 'value' was not present! Struct: IndexExpression(column_name:64 65 76 69 63 65 5F 69 64, op:EQ, value:null)
at org.apache.cassandra.thrift.IndexExpression.validate(IndexExpression.java:562)
at org.apache.cassandra.thrift.IndexExpression.write(IndexExpression.java:499)
at org.apache.cassandra.thrift.IndexClause.write(IndexClause.java:521)
at org.apache.cassandra.thrift.Cassandra$get_indexed_slices_args.write(Cassandra.java:13469)
at org.apache.cassandra.thrift.Cassandra$Client.send_get_indexed_slices(Cassandra.java:793)
at org.apache.cassandra.thrift.Cassandra$Client.get_indexed_slices(Cassandra.java:781)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl$19.execute(KeyspaceServiceImpl.java:732)
では、indexedSliceQuery が特定の行キーに対してのみ結果を返すように制限するにはどうすればよいでしょうか?