title: How to get all fields in elasticsearch
body: <p>How to get all field names (not values) under _source using elastic4s ? I want a list of all mapped fields .
  I tried doing something like: </p>
  
  <pre><code>search in indexName / indexType sourceInclude "_source" limit q.limit aggregations(
                  aggregation terms "agg0" field "_field_names"  size 0
  
                )
  </code></pre>
  
  <p>or even</p>
  
  <pre><code> search in indexName / indexType sourceInclude "_source" sourceExclude ("_all", "_type",
                  "_uid", "_version", "_index", "_score", "_id")  limit q.limit aggregations(
                  aggregation terms "agg0" field "_field_names"  size 0
  
                )
  </code></pre>
  
  <p>but that didn't do it . I got all metadata fields and not just those under _source</p>
  
  <pre><code>"aggregations" : {
      "agg0" : {
        "doc_count_error_upper_bound" : 0,
        "sum_other_doc_count" : 0,
        "buckets" : [ {
          "key" : "_all",
          "doc_count" : 1500
        }, {
          "key" : "_source",
          "doc_count" : 1500
        }, {
          "key" : "_type",
          "doc_count" : 1500
        }, {
          "key" : "_uid",
          "doc_count" : 1500
        }, {
          "key" : "_version",
          "doc_count" : 1500
        }
  .. more fields 
  </code></pre>
  
  <p><strong>==== Update ===</strong> </p>
  
  <p>I found this way :</p>
  
  <pre><code>val map = getMapping indexName /indexType}
  val y = map.get("properties").asInstanceOf[java.util.Map[String, _]]
  y.keys.toList
  </code></pre>
  
  <p>is there a better way for getting the same result ?</p>