我正在使用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位
答案 0 :(得分:2)
setRowLimit(100)表示每次执行查询时,最多返回100个项目。 因此,如果您有超过100个项目,则应该反复执行查询以获取 设置autoPaginateRows(true)
下的所有结果答案 1 :(得分:1)
增加行限制:
.setRowLimit(100)