Search::Elasticsearch

Official Perl low-level client for Elasticsearch.

Latest version: 8.12 registry icon
Maintenance score
37
Safety score
100
Popularity score
46
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
8.12 0 0 0 0 0
8.00 0 0 0 0 0
7.711001 0 0 0 0 0
7.717 0 0 0 0 0
7.715 0 0 0 0 0
7.714 0 0 0 0 0
7.713 0 0 0 0 0
7.712 0 0 0 0 0
7.711 0 0 0 0 0
7.30 0 0 0 0 0
7.30_1 0 0 0 0 0
6.81 0 0 0 0 0
6.80 0 0 0 0 0
6.80_1 0 0 0 0 0
6.80_01 0 0 0 0 0

Stability
Latest release:

8.12 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant



Elasticsearch Perl client

Build status

Search::Elasticsearch is the official Perl API for Elasticsearch. The full documentation is available on https://metacpan.org/module/Search::Elasticsearch.

Features

  • Full support for all Elasticsearch APIs
  • HTTP backend (blocking and asynchronous with Search::Elasticsearch::Async)
  • Robust networking support which handles load balancing, failure detection and failover
  • Good defaults
  • Helper utilities for more complex operations, such as bulk indexing, scrolled searches and reindexing.
  • Logging support via Log::Any
  • Easy extensibility

Install

cpanm Search::Elasticsearch

Connecting to Elasticsearch

You can connect to Elasticsearch using the following examples:

use Search::Elasticsearch;

# Connect to localhost:9200 (default)
my $e = Search::Elasticsearch->new();

# Connect to http://search:9200
my $e = Search::Elasticsearch->new(
    nodes => [ 'search:9200' ]
);

# Round-robin between two nodes:
my $e = Search::Elasticsearch->new(
    nodes => [
        'search1:9200',
        'search2:9200'
    ]
);

After the connection you can start using the Elaticsearch endpoints as functions of $e object, as follows:

# Info endpoint
my $result = $e->info(); 

printf("Name: %s\n", $result->{name}); # e.g. Name: instance-001
printf("Version: %s\n", $result->{version}->{number}); # e.g. Version: 8.5.2

Connecting to Elastic Cloud

Elastic Cloud is the cloud solution offered by Elastic.

To connect the Perl client to Elastic Cloud you need the get the following data:

  • the Elasticsearch server address (i.e. public URL);
  • the Elastic Cloud API key;

You can retrieve these data from your Elastic Cloud dashboard. You need to open the Manage Deployments page and Copy endpoint of Elasticsearch (see screenshot below).

Endpoint

This endpoint is the server address of Test instance (e.g. https://my-test.es.us-central1.gcp.cloud.es.io).

After this step, you need to generate an API key in the Management page under the section Security.

Security

When you click on Create API key button you can choose a name and set the other options (for example, restrict privileges, expire after time, and so on).

Choose an API name

After this step you will get the API keyin the API keys page.

API key

IMPORTANT: you need to copy and store the API keyin a secure place, since you will not be able to view it again in Elastic Cloud.

Finally, you can use the Elasticsearch endpoint and the API Key for connecting the Perl client as follows:

my $e = Search::Elasticsearch->new(
    nodes => [ 'https://my-test.es.us-central1.gcp.cloud.es.io' ],
    elastic_cloud_api_key => 'insert here the API Key'
);

Compatibility

Language clients are forward compatible; meaning that clients support communicating with greater or equal minor versions of Elasticsearch. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.

License

This software is licensed under the Apache 2 license.