code: func (q *TermsQuery) Source() (interface{}, error) {
  	// {"terms":{"name":["value1","value2"]}}
  	source := make(map[string]interface{})
  	params := make(map[string]interface{})
  	source["terms"] = params
  
  	if q.termsLookup != nil {
  		src, err := q.termsLookup.Source()
  		if err != nil {
  			return nil, err
  		}
  		params[q.name] = src
  	} else {
  		params[q.name] = q.values
  		if q.boost != nil {
  			params["boost"] = *q.boost
  		}
  		if q.queryName != "" {
  			params["_name"] = q.queryName
  		}
  	}
  
  	return source, nil
  }
docs: // Creates the query source for the term query.