title: Elasticsearch returns results greater than specified in range
body: <p>I'm use <strong>Elasticsearch</strong> (Version: 6.8.4) with <strong>MongoDB</strong> (4.0.3) </p>
  
  <p>I want find all the documents where price between 1 and 800 and sale_date is greater than Date.now(), but I have problem with my query:</p>
  
  <pre><code>{
    "query": {
      "bool": {
        "must": [],
        "filter": {
          "term": { 
            "sold_out": false 
          },
          "bool": {
            "should": [
              {
                "range": {
                  "sale_date": {
                    "gt": Date.now()
                  }
                }
              },
              {
                "range": {
                  "price": {
                    "gt": 1,
                    "lte": 800
                  }
                }
              }
            ]
          }
        }
      }
    },
    "from": 10,
    "size": 200
  }
  </code></pre>
  
  <p>It's query returns me results with products where some of them have price greater than 800</p>
  
  <p>Price field stored in Elasticsearch as <strong>long</strong></p>
  
  <p><strong>Whant I'm try:</strong></p>
  
  <ul>
  <li>use from: to: and got the same results</li>
  <li>change "should" to "must" in filter and it's returns empty results</li>
  <li>remove from query { "range": { "sale_date": { "gt": Date.now(), } }
  } and it's returns <strong>right</strong> results!</li>
  </ul>
  
  <p><strong>What I'm doing wrong ?</strong></p>