Cassandra createSliceQuery澄清

时间:2013-05-08 18:30:21

标签: cassandra thrift hector

我正在尝试使用Thrift 1.0 lib检索Cassandra中一行的所有列。我在谷歌搜索中找到了一些例子,特别是:

SliceQuery<String, String, String> sliceQuery = hectorTemplate.createSliceQuery(
    StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
sliceQuery.setColumnFamily("myname");
sliceQuery.setKey("myid");
sliceQuery.setRange(null, null, false, 20);
QueryResult<ColumnSlice<String,String>> queryResult = sliceQuery.execute();
ColumnSlice<String,String> slice = queryResult.get();
List<HColumn<String, String>> retrievedColumns = slice.getColumns();
for (HColumn<String, String> column : retrievedColumns) {
    System.out.println(column.getName() +"::"+ column.getValue());
}

但是,我找不到任何有关Hector对象中的参数和类型的信息?

例如,在这里:

SliceQuery<String, String, String> 
  • 这里的所有类型都是字符串 - 它们的类型是什么?列名类型?列值类型?

然后,我们为createSliceQuery()指定参数:

hectorTemplate.createSliceQuery(
    StringSerializer.get(), StringSerializer.get(), StringSerializer.get());

再次 - 那些序列化器是什么?为什么只有3个序列化器 - 如果是第一列和最后一列,还有其他什么?如果我得到很多列,如何为它们指定序列化器呢?

然后,我们检索

List<HColumn<String, String>> 

- 再次,这些String类型是什么? 如果我有一个BytesType类型的列 - 我在哪里指定?

如果有一些不错的API文档(不仅仅是方法签名而且没有解释它们的参数是什么) - 你能指点我吗?

谢谢! 码头

1 个答案:

答案 0 :(得分:1)

如果是SliceQuery<K, C, V>,则以下是类型参数:

  

K - 密钥的类型

     

C - 列名的类型

     

V - 列值的类型

同样在HColumn<N,V>的情况下,类型参数是

  

N - 列名称的类型

     

V - 列值的类型

createSliceQuery

类似