code: func (item *MoreLikeThisQueryItem) Source() (interface{}, error) {
  	if item.likeText != "" {
  		return item.likeText, nil
  	}
  
  	source := make(map[string]interface{})
  
  	if item.index != "" {
  		source["_index"] = item.index
  	}
  	if item.typ != "" {
  		source["_type"] = item.typ
  	}
  	if item.id != "" {
  		source["_id"] = item.id
  	}
  	if item.doc != nil {
  		source["doc"] = item.doc
  	}
  	if len(item.fields) > 0 {
  		source["fields"] = item.fields
  	}
  	if item.routing != "" {
  		source["_routing"] = item.routing
  	}
  	if item.fsc != nil {
  		src, err := item.fsc.Source()
  		if err != nil {
  			return nil, err
  		}
  		source["_source"] = src
  	}
  	if item.version >= 0 {
  		source["_version"] = item.version
  	}
  	if item.versionType != "" {
  		source["_version_type"] = item.versionType
  	}
  
  	return source, nil
  }
docs: // Source returns the JSON-serializable fragment of the entity.