GAEのPaginationについて


お世話になっております。  
現在GAEでPagination処理をしているのですが、offsetはDatastore
Readの回数や、指定できる数値に制限があるのでCursorを使用してPaginationをしようと思っています。

そこで質問なのですが、Cursorは次のページは取得できるのですが、任意のページを取得したい場合、offsetが指定できないのでどのようにすればいいのか困っています。

例えば10ページのコンテンツがあるとして、4ページ目のコンテンツを取得する方法が知りたいです。Cursorを拡張する方法も考えたのですが、filan
classのようでできません。

宜しくお願い致します。




DatastoreでPaginationするの結構難しいですねー。  
僕は大抵UIをReadMoreにしてしまって、Paginationは作っていません。

作るとすれば  
1ページ20件で、30ページぐらいまでしか、ほとんど見ることが無いという状況なら、Query.KeysOnlyで、500件ぐらい取ってきて、メモリ上で指定されたページまで読み飛ばす感じでしょうか。  
パフォーマンスを向上させるために、一度検索したら、条件とCursorをMemcacheに入れておくと、データが変わらない限りは、Memcacheから持ってこれます。

