按卡索德拉的钥匙排序

pet*_*ter 4 sorting cassandra hector

假设我有一个带有存储用户对象的列族的键空间,这些对象的键是用户名.

如何使用Hector获取按用户名排序的用户列表?

我尝试使用RangeSlicesQuery,这个查询的分页工作正常,但结果没有以任何方式排序.

我是一个绝对的Cassandra初学者,有人能指出一个简单的例子,展示如何按键对列族进行排序吗?请询问您是否需要有关我的努力的更多详细信息.

编辑:

结果没有排序,因为我在cassandra.yaml中使用了默认的RandomPartitioner而不是OrderPreseveringPartitioner.

可能最好不要依赖按键排序,而是使用二级索引.

Nis*_*ant 5

引用卡桑德拉 - 权威指南

列名按照compare_with的值按排序顺序存储.另一方面,行以分区器定义的顺序存储(例如,使用RandomPartitioner,它们是随机顺序等)

我想你正在使用RandomPartitioner哪个

...以基本随机的顺序返回数据.

你可能应该OrderPreservingPartitioner (OPP)在哪里使用

因此,行按键顺序存储,将数据的物理结构与排序顺序对齐.

注意OPP的低效率.


(编辑于2014年3月7日)
重要:

这个答案现在很老了.

这是一个系统范围的设置.你可以设置cassandra.yaml.看到这个文档.同样,OPP非常气馁.本文档适用于1.1版,您可以看到它已弃用.它可能会从最新版本中删除.如果您确实想要使用OPP,则可能需要重新审视体系结构.