无法获得Astyanax IndexQuery执行的所有结果

时间:2013-03-07 16:20:04

标签: cassandra astyanax

我正在使用Astyanax客户端从Cassandra列族读取数据。我的要求是通过astyanax查询列族的二级索引列。我能够从astyanax网站上找到一些使用索引列上的表达式从Cassandra读取数据的示例。我用这些例子编写了自己的代码:

  OperationResult<Rows<String, String>> result = null;
  IndexQuery<String, String> query = keyspace.prepareQuery("ColumnFamilyName").searchWithIndex().setRowLimit(100).autoPaginateRows(true).addExpression().whereColumn("ColumnNameWhichHasSecondaryIndex").equals().value("value");
  result = query.execute();
  for(Row<String, String> row : result.getResult()) {
    ...
  }

这是我在运行此代码时遇到的问题,它只返回100行,而列系列有几千行满足查询条件。

我无法找到合适的API /模式来解决我的问题。请问有人请指导我这个问题吗?

Astanax版本:1.56.24 Apache Cassandra版本:1.1.8 Jdk版本:1.7 平台:Rhel 5.4 32位

2 个答案:

答案 0 :(得分:2)

setRowLimit(100)表示每次执行查询时,最多返回100个项目。 因此,如果您有超过100个项目,则应该反复执行查询以获取 设置autoPaginateRows(true)

下的所有结果

答案 1 :(得分:1)

增加行限制:

.setRowLimit(100)