title: Elastic NEST returns inconsistent results
body: <p>I am trying my hardest to understand how NEST works, but I think I have something working.. partially. I've imported 10.000 documents into my local Elastic. All the timestamps are 3 days old. When I use Kibana to get results, I have a simply query: <code>hostname:www.website.com</code> and I've set the date to 1 month to now, so I get all the results. That particular query gets me 44 results, which I've also verified to be correct in the CSV file.</p>
  <p>Now, when I try to write the same code for the NEST library, I get various results. I get 33, 34, 43, and 44 results. Probably other amounts as well. It mostly happens after I start my application, and usually never when I just call my code many times.</p>
  <pre><code>public async Task Test()
  {
      var model = new Model() 
      {
          Domain = &quot;www.website.com&quot;
      };
  
      var timestamp = DateTimeOffset.UtcNow.AddMonths(-1).ToUnixTimeSeconds();
  
      var nodes = new[]
      {
          new Uri(&quot;http://localhost:9200&quot;),
      };
  
      var pool = new StaticConnectionPool(nodes);
      var settings = new ConnectionSettings(pool);
      settings = settings.BasicAuthentication(&quot;username&quot;, &quot;password&quot;);
      var client = new ElasticClient(settings);
  
      var documents = new List&lt;IReadOnlyCollection&lt;ApacheRequest&gt;&gt;();
  
      Time processTimePerScroll = &quot;2s&quot;;
      var numberOfSlices = Environment.ProcessorCount;
      if (numberOfSlices &gt; 3) numberOfSlices = 3;
  
      var scrollAllObservable = client.ScrollAll&lt;ApacheRequest&gt;(processTimePerScroll, numberOfSlices, sc =&gt; sc
          .MaxDegreeOfParallelism(numberOfSlices)
          .Search(s =&gt; s
              .Index(&quot;apache-requests&quot;)
              .Query(q =&gt; 
                          q.Range(r =&gt; r.GreaterThanOrEquals(timestamp)) &amp;&amp;
                          q.Term(t =&gt; t.Servername, model.Domain)
              )
              .Sort(so =&gt; so.Field(f =&gt; f.Field(fi =&gt; fi.Timestamp)))
          )
      );
  
      var waitHandle = new ManualResetEvent(false);
  
      var scrollAllObserver = new ScrollAllObserver&lt;ApacheRequest&gt;(
          response =&gt;
          {
              documents = documents.Concat(response.SearchResponse.Documents).ToList();
          },
          e =&gt;
          {
              waitHandle.Set();
              throw new Exception(e.Message);
          },
          () =&gt; waitHandle.Set()
      );
  
  
      scrollAllObservable.Subscribe(scrollAllObserver);
  
      waitHandle.WaitOne();
  
      var requests = documents;
  
      var count = requests.Count(); //33, 34, 43, 44, and so on
  }
  </code></pre>
  <p>When I test this against production data, I sometimes get 10k+ results back, so I need to use scroll.</p>
  <p>What am I doing wrong here? I never throw the exception in the observer.</p>