code: func (cli *Client) ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error) {
  	var results []registry.SearchResult
  	query := url.Values{}
  	query.Set("term", term)
  	query.Set("limit", fmt.Sprintf("%d", options.Limit))
  
  	if options.Filters.Len() > 0 {
  		filterJSON, err := filters.ToJSON(options.Filters)
  		if err != nil {
  			return results, err
  		}
  		query.Set("filters", filterJSON)
  	}
  
  	resp, err := cli.tryImageSearch(ctx, query, options.RegistryAuth)
  	defer ensureReaderClosed(resp)
  	if errdefs.IsUnauthorized(err) && options.PrivilegeFunc != nil {
  		newAuthHeader, privilegeErr := options.PrivilegeFunc()
  		if privilegeErr != nil {
  			return results, privilegeErr
  		}
  		resp, err = cli.tryImageSearch(ctx, query, newAuthHeader)
  	}
  	if err != nil {
  		return results, err
  	}
  
  	err = json.NewDecoder(resp.body).Decode(&results)
  	return results, err
  }
docs: // ImageSearch makes the docker host to search by a term in a remote registry.
  // The list of results is not sorted in any fashion.