title: SolrCloud: workaround for classic pagination with "start,rows" parameters
body: <p>I have SolrCloud with 3 shards. </p>
  
  <p><strong>My purpose</strong>: select and process all products from category. </p>
  
  <p><strong>Current implementation</strong>: Portion selection in cycle. </p>
  
  <ul>
  <li>1st iteration: q=cat:1&amp;start=0&amp;rows=100</li>
  <li>2nd iteration: q=cat:1&amp;start=100&amp;rows=100</li>
  <li>3th: q=cat:1&amp;start=200&amp;rows=100</li>
  </ul>
  
  <p>...</p>
  
  <p>But growing "start", performance is down. Explanation here: <a href="https://wiki.apache.org/solr/DistributedSearch" rel="nofollow">https://wiki.apache.org/solr/DistributedSearch</a></p>
  
  <blockquote>
    <p>Makes it more inefficient to use a high "start" parameter. For
    example, if you request start=500000&amp;rows=25 on an index with 500,000+
    docs per shard, this will currently result in 500,000 records getting
    sent over the network from the shard to the coordinating Solr
    instance. If you had a single-shard index, in contrast, only 25
    records would ever get sent over the network. (Granted, setting start
    this high is not something many people need to do.)</p>
  </blockquote>
  
  <p>What ideas how I can walk around all records in category?</p>