title: Range query with elasticsearch for string
body: <p>I am trying use range query with elasticsearch</p>
  
  <pre><code>{
      "query": {
          "range": {
               "order_no": {
                   "gte": "VM-0001",
                   "lte": "VM-0005"
               }
           }
      }
  }
  </code></pre>
  
  <p>But elastic return no result. I found system have problem with string include <code>-</code> or <code>_</code></p>
  
  <p>This is mapping of that field:</p>
  
  <pre><code>"order_no" : {
        "type" : "string",
        "index_analyzer" : "str_index_analyzer",
        "search_analyzer" : "str_search_analyzer"
  }
  </code></pre>
  
  <hr>
  
  <pre><code>{
    "analysis": {
      "analyzer": {
        "str_search_analyzer": {
          "tokenizer": "keyword",
          "filter": [
            "lowercase"
          ]
        },
        "str_index_analyzer": {
          "tokenizer": "keyword",
          "filter": [
            "lowercase",
            "substring"
          ]
        }
      },
      "filter": {
        "substring": {
          "type": "nGram",
          "min_gram": 1,
          "max_gram": 20
        }
      }
    }
  }
  </code></pre>