code: func (q *Query) String() string {
  	// TODO: this is kinda ugly
  	s := []string{}
  
  	if len(q.Params) > 0 {
  		s = append(s, EncodeURLParamMap(&q.Params))
  	}
  
  	if q.Rows != 0 {
  		s = append(s, fmt.Sprintf("rows=%d", q.Rows))
  	}
  
  	if q.Start != 0 {
  		s = append(s, fmt.Sprintf("start=%d", q.Start))
  	}
  
  	if q.Sort != "" {
  		s = append(s, fmt.Sprintf("sort=%s", q.Sort))
  	}
  
  	if q.DefType != "" {
  		s = append(s, fmt.Sprintf("defType=%s", q.DefType))
  	}
  
  	if q.Debug {
  		s = append(s, fmt.Sprintf("debugQuery=true"))
  	}
  
  	if q.OmitHeader {
  		s = append(s, fmt.Sprintf("omitHeader=true"))
  	}
  
  	return strings.Join(s, "&")
  }
docs: /*
   * Query.String() returns the Query in solr query string format
   */