Cassandra Astyanax密钥范围查询

Cassandra Astyanax密钥范围查询,cassandra,range,astyanax,Cassandra,Range,Astyanax,正在尝试编写一个查询,该查询将使用astyanax客户端和RowSliceQuery对列族中的所有行进行分页 keyspace.prepareQuery(COLUMN_FAMILY).getKeyRange(null, null, null, null, 100); 使用hector成功完成此操作,其中第一次呼叫使用空的开始键和结束键完成。检索第一页后,我使用结果中的最后一个键查询第二页等。这是使用hector的第一页代码 HFactory.createRangeSlicesQuery(key

正在尝试编写一个查询,该查询将使用astyanax客户端和RowSliceQuery对列族中的所有行进行分页

keyspace.prepareQuery(COLUMN_FAMILY).getKeyRange(null, null, null, null, 100);
使用hector成功完成此操作,其中第一次呼叫使用空的开始键和结束键完成。检索第一页后,我使用结果中的最后一个键查询第二页等。这是使用hector的第一页代码

HFactory.createRangeSlicesQuery(keyspace,
LongSerializer.get(), new CompositeSerializer(),
BytesArraySerializer.get())
.setColumnFamily(COLUMN_FAMILY)
.setRange(null, null, false, 100).setRowCount(100);
现在,当我尝试使用astyanax执行此操作时,我得到了有关null和非null键和令牌的错误。不确定令牌在此查询中的作用。此外,我还可以使用allRows(),但希望使用键范围查询来实现这一点,因为它给了我更多的灵活性

有人举过使用astyanax进行密钥范围查询的例子吗?我在“入门”文档或网络上的任何其他地方都找不到一个例子

谢谢!
安东检查此示例代码。我希望这段代码能帮助您进行分页

IndexQuery<String, String> query = keyspace
   .prepareQuery(CF_STANDARD1).searchWithIndex()
   .setRowLimit(10).autoPaginateRows(true).addExpression()
   .whereColumn("Index2").equals().value(42);
IndexQuery query=keyspace
.prepareQuery(CF_STANDARD1).searchWithIndex()
.setRowLimit(10).AutoAginateRows(true).addExpression()
其中列(“Index2”)等于()值(42);

最好的,

您所指的是
getRowRange
方法:

keyspace.prepareQuery(CF_STANDARD1)
  .getRowRange(startKey, endKey, startToken, endToken, count)

但是请注意,这仅在使用时有效。由于默认情况下Cassandra使用Murruld3Partitioner,这通常不起作用。建议使用索引来执行此操作。Astyanax还提供了一个配方,它利用第二个列族将键存储为列,以便对原始数据进行有效的范围搜索。

不,他希望对行键进行分页,而不是进行索引搜索。