헥터 :카산드라 헥터 : 주어진 행 키와 보조 인덱스에 대한 IndexedSliceQuery
select * from table1 where rowkey='x' and secondary_indexed_column='y'
경우 : 내가 좋아하는 헥터에 쿼리를 모델링 할 필요가 카산드라-1.1.2
헥터 코어-1.0-5 rowKey 'x'로 설정된 setStartKey와 함께 IndexedSliceQuery를 사용하지만, 여전히 secondary_indexed_column = 'y'가 포함 된 모든 행을 가져옵니다.
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을 제한 할 : 나는 addEqualsExpression에 row_key 필드를 추가하는 경우 는 ("row_key는" 'X'), 나는 다음과 같은 예외를 얻을 ?
그래서 조금 혼란 스럽습니다. 특정 열을 검색 할 행 키를 제공하고 있습니까? 색인을 만들 필요가 없습니다. 행을 읽고 열 이름과 값을 확인하십시오. IndexedSliceQuery는 지정된 열 이름/값을 포함하는 일련의 행 (지정된 시작점에서)을 반환합니다. – libjack