code: func (s *DeleteByQueryService) Do(ctx context.Context) (*BulkIndexByScrollResponse, error) {
  	// Check pre-conditions
  	if err := s.Validate(); err != nil {
  		return nil, err
  	}
  
  	// Get URL for request
  	path, params, err := s.buildURL()
  	if err != nil {
  		return nil, err
  	}
  
  	// Set body if there is a query set
  	var body interface{}
  	if s.body != nil {
  		body = s.body
  	} else if s.query != nil {
  		src, err := s.query.Source()
  		if err != nil {
  			return nil, err
  		}
  		body = map[string]interface{}{
  			"query": src,
  		}
  	}
  
  	// Get response
  	res, err := s.client.PerformRequest(ctx, PerformRequestOptions{
  		Method: "POST",
  		Path:   path,
  		Params: params,
  		Body:   body,
  	})
  	if err != nil {
  		return nil, err
  	}
  
  	// Return result
  	ret := new(BulkIndexByScrollResponse)
  	if err := s.client.decoder.Decode(res.Body, ret); err != nil {
  		return nil, err
  	}
  	return ret, nil
  }
docs: // Do executes the delete-by-query operation.