NAME
App::ElasticSearch::Utilities::Connection - Abstract the connection element
VERSION
version 8.6
SYNOPSIS
For most users, this code will never be called directly since this module doesn't handle parameter parsing on the CLI. To get an object, instead call:
use App::ElasticSearch::Utilities qw(es_connect);
my $es = es_connect();
my $http_response_obj = $es->request('_search',
{
index=>'logstash',
uri_param => {
size => 10,
}
},
{
query => {
query_string => "program:sshd",
}
}
);
Though even this is overkill. The es_request method maintains compatability with older versions and emulates the API you'd expect from Elastijk.
ATTRIBUTES
host
Hostname or ip to connect to, default 'localhost'
port
Port to connect the HTTP transport for the ElasticSearch cluster, default is 9200
proto
Protocol to use, defaults to 'http'.
This module converts from the performance concerned backend of Hijk and Elastijk, to the feature rich LWP::UserAgent. This means we can now support TLS communication to the ES back-end and things like basic authentication.
timeout
Connection and Read Timeout for the HTTP connection, defaults to 10 seconds.
username
HTTP Basic Authorization username, defaults to $ENV{USER}
.
password
HTTP Basic Authorization password, if set, we'll try authentication.
ssl_opts
SSL Options for "ssl_opts" in LWP::UserAgent.
ua
Lazy built LWP::UserAgent to access LWP::UserAgent directly.
METHODS
request( $command, { index => ... uri_param => { size => 1 } }, $body )
This method provides a wrapper between the Hijk/Elastijk request syntax and the LWP::UserAgent flow. It's return value is the HTTP::Response object from LWP::UserAgent instead of the more simplistic return values of Hijk and Elastijk. Use App::ElasticSearch::Utilities::es_request for a simpler interface.
exists( index => 'name' )
Takes the name of an index, returns true if the index exists, false otherwise.
put( body => ... , index => ... )
Parameter body is required. Puts something to an index. This is often used to put settings and/or mappings to an index.
Returns a list containing the HTTP Status Code, and the Response Content.
bulk( body => ..., index => ... )
Parameter body is required. The body should be an array containing the command and documents to send to the ElasticSearch bulk API, see: Bulk API
Returns a list containing the HTTP Status Code, and the Response Content.
AUTHOR
Brad Lhotsky <brad@divisionbyzero.net>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License