我正在研究使用 Aquiles 在 Cassandra 中使用二级索引功能的可能性。我知道对于主索引(键),我必须使用 OrderPreservingPartitioner 才能进行查询。起初,我认为二级索引没有这样的限制,但我注意到开始键是 GetIndexedSlicesCommand 的一部分。这是否意味着在 RandomPartitioner 下,此命令无法使用?
问问题
465 次
1 回答
2
您不需要 OrderPreservingPartitioner 来按行键查询,仅当您想通过键获得有意义的行范围时才需要它,例如“键在 5 到 9 之间的所有行”。(请注意,可以而且应该几乎总是使用 RandomPartitioner 来代替。)
get_indexed_slices 的开始键的行为方式与它对 get_range_slices 的行为相同。也就是说,在使用 RandomPartitioner 时检查两个键之间的一系列行并不是很有意义,但它对于通过大量行进行分页很有用。甚至还有关于该主题的常见问题解答条目。基本上,如果您要通过调用 get_indexed_slices 获得大量结果,您不想一次获取所有结果,而是希望获得一个块(10、100 或 1000 个,具体取决于大小)一次,然后将 start_key 设置为您在前一个块中看到的最后一个键以获取下一个块。
于 2011-04-16T21:34:49.073 回答