2013-03-07 47 views
0

我正在使用Astyanax客戶端從Cassandra列家族讀取數據。我的要求是通過astyanax查詢列族的二級索引列。我能夠從astyanax網站找到幾個例子,使用索引列上的表達式從Cassandra中讀取數據。我使用的例子,我自己寫的代碼:無法獲得Astyanax IndexQuery執行的所有結果

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位

回答

1

增加你的行限制:

.setRowLimit(100) 
+0

嗨,感謝您的答覆。但是,如果你看我的代碼,我將行限制設置爲100.這沒有幫助。 – user582348 2013-03-08 05:47:27

+0

我不明白。如果您需要更多行,請增加行限制。 – 2013-04-16 21:35:19

2

setRowLimit(100)的裝置每次執行查詢時,它最多返回100個項目。 所以,如果你有超過100個項目,你應該一次又一次地執行查詢得到 設置下的所有結果autoPaginateRows(true)