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".