code: func (q *MatchPhraseQuery) Source() (interface{}, error) {
  	// {"match_phrase":{"name":{"query":"value","analyzer":"my_analyzer"}}}
  	source := make(map[string]interface{})
  
  	match := make(map[string]interface{})
  	source["match_phrase"] = match
  
  	query := make(map[string]interface{})
  	match[q.name] = query
  
  	query["query"] = q.value
  
  	if q.analyzer != "" {
  		query["analyzer"] = q.analyzer
  	}
  	if q.slop != nil {
  		query["slop"] = *q.slop
  	}
  	if q.boost != nil {
  		query["boost"] = *q.boost
  	}
  	if q.queryName != "" {
  		query["_name"] = q.queryName
  	}
  
  	return source, nil
  }
docs: // Source returns JSON for the function score query.