- DESCRIPTION

# DESCRIPTION

The Transport class manages the request cycle. It receives parsed requests from the (user-facing) client class, and tries to execute the request on a node in the cluster, retrying a request if necessary.

Raw requests can be executed using the transport class as follows:

        $result = $e->transport->perform_request(
            method => 'POST',
            path   => '/_search',
            qs     => { from => 0, size => 10 },
            body   => {
                query => {
                    match => {
                        title => "Elasticsearch clients"
                    }
                }
            }
        );

Other than the `method`, `path`, `qs` and `body` parameters, which should be self-explanatory, it also accepts:

`ignore`

  The HTTP error codes which should be ignored instead of throwing an error, eg `404 NOT FOUND`:

          $result = $e->transport->perform_request(
              method => 'GET',
              path   => '/index/type/id'
              ignore => [404],
          );

`serialize`

  Whether the `body` should be serialized in the standard way (as plain JSON) or using the special bulk format: `"std"` or `"bulk"`.