0

让我澄清一下

我有一个列族,带有像这样的 UTF8 键:apple#NewYork,banana#LosAngeles,banana#NewYork,cherry#NewYork,... 等等

我需要它,因为它们已排序,然后我想获得所有“香蕉”起始键?

有可能还是有解决方法?

4

1 回答 1

1

复合类型呢?

将当前行映射到列,例如

row_key => { 香蕉:a => “你想要的价值”,香蕉:b => “你想要的价值”,... }

复合类型的优点是

  1. 它们在排序时保留类型属性
  2. 如果您的复合键是a:b:c您可以查询 a、a:b 范围内的所有列,还可以查询 a:b:c 等点查询

现在您可以使用 phpcassa Ex 执行列切片:

row_key => { 1:a => 1, 1:b => 1, 10:bb => 1, 1:c => 2}
ColumnSlice(array(1), array(1)) => All Columns with first component equal to 1
ColumnSlice(array(1), array(10)) => All Columns with first component between 1 and 10
ColumnSlice("", array(1, 'c')) => All Columns from the beginning of row whose first component less than 1 and second component less than 'c' 

您可以反向执行上述操作,也可以使用包容性和排他性限制。

还有一点要记住,您不能直接要求第二个组件 < x 范围内的所有列跳过第一个

甚至行键也支持复合类型,但如果您使用随机分区器,那么它没有任何意义。

于 2012-05-12T09:39:01.217 回答