code: func (c *Conn) DeleteByQuery(indices []string, types []string, args map[string]interface{}, query interface{}) (BaseResponse, error) {
  	var url string
  	var retval BaseResponse
  	if len(indices) > 0 && len(types) > 0 {
  		url = fmt.Sprintf("/%s/%s/_query", strings.Join(indices, ","), strings.Join(types, ","))
  	} else if len(indices) > 0 {
  		url = fmt.Sprintf("/%s/_query", strings.Join(indices, ","))
  	}
  	body, err := c.DoCommand("DELETE", url, args, query)
  	if err != nil {
  		return retval, err
  	}
  	if err == nil {
  		// marshall into json
  		jsonErr := json.Unmarshal(body, &retval)
  		if jsonErr != nil {
  			return retval, jsonErr
  		}
  	}
  	return retval, err
  }
docs: // DeleteByQuery allows the caller to delete documents from one or more indices and one or more types based on a query.
  // The query can either be provided using a simple query string as a parameter, or using the Query DSL defined within
  // the request body.
  // see: http://www.elasticsearch.org/guide/reference/api/delete-by-query.html