title: Python elasticsearch timeout
body: <p>In queries like aggregations and cardinality search there might be a timeout.</p>
  
  <p>I noticed that when executing queries from python client the response sometimes contains:</p>
  
  <pre><code>{  
     "took":1200184,
     "timed_out":true,
     "_shards":{  
        "total":84,
        "successful":84,
        "failed":0
     }
  </code></pre>
  
  <p>And returns less results than the expected.</p>
  
  <p>My main problem is that when timeout occurs, response still contains a number of results.
  I could check if timeout is true before parsing response results but there is probably a better way to do that :)... <code>like raise an exception</code> or <code>somehow catch timeout and retry</code></p>