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:
ignoreThe 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],
);
serializeWhether the body should be serialized in the standard way (as plain JSON) or using the special bulk format: "std" or "bulk".