code: func (s *MultiTermvectorItem) Source() interface{} {
  	source := make(map[string]interface{})
  
  	source["_id"] = s.id
  
  	if s.index != "" {
  		source["_index"] = s.index
  	}
  	if s.typ != "" {
  		source["_type"] = s.typ
  	}
  	if s.fields != nil {
  		source["fields"] = s.fields
  	}
  	if s.fieldStatistics != nil {
  		source["field_statistics"] = fmt.Sprintf("%v", *s.fieldStatistics)
  	}
  	if s.offsets != nil {
  		source["offsets"] = s.offsets
  	}
  	if s.parent != "" {
  		source["parent"] = s.parent
  	}
  	if s.payloads != nil {
  		source["payloads"] = fmt.Sprintf("%v", *s.payloads)
  	}
  	if s.positions != nil {
  		source["positions"] = fmt.Sprintf("%v", *s.positions)
  	}
  	if s.preference != "" {
  		source["preference"] = s.preference
  	}
  	if s.realtime != nil {
  		source["realtime"] = fmt.Sprintf("%v", *s.realtime)
  	}
  	if s.routing != "" {
  		source["routing"] = s.routing
  	}
  	if s.termStatistics != nil {
  		source["term_statistics"] = fmt.Sprintf("%v", *s.termStatistics)
  	}
  	if s.doc != nil {
  		source["doc"] = s.doc
  	}
  	if s.perFieldAnalyzer != nil && len(s.perFieldAnalyzer) > 0 {
  		source["per_field_analyzer"] = s.perFieldAnalyzer
  	}
  
  	return source
  }
docs: // Source returns the serialized JSON to be sent to Elasticsearch as
  // part of a MultiTermvector.