code: func (q *RangeQuery) Source() (interface{}, error) {
  	source := make(map[string]interface{})
  
  	rangeQ := make(map[string]interface{})
  	source["range"] = rangeQ
  
  	params := make(map[string]interface{})
  	rangeQ[q.name] = params
  
  	params["from"] = q.from
  	params["to"] = q.to
  	if q.timeZone != "" {
  		params["time_zone"] = q.timeZone
  	}
  	if q.format != "" {
  		params["format"] = q.format
  	}
  	if q.relation != "" {
  		params["relation"] = q.relation
  	}
  	if q.boost != nil {
  		params["boost"] = *q.boost
  	}
  	params["include_lower"] = q.includeLower
  	params["include_upper"] = q.includeUpper
  
  	if q.queryName != "" {
  		rangeQ["_name"] = q.queryName
  	}
  
  	return source, nil
  }
docs: // Source returns JSON for the query.