{"id":15044559,"url":"https://github.com/elastic/elasticsearch-perl","last_synced_at":"2026-06-02T16:31:11.798Z","repository":{"id":9089684,"uuid":"10866197","full_name":"elastic/elasticsearch-perl","owner":"elastic","description":"Official Perl low-level client for Elasticsearch.","archived":false,"fork":false,"pushed_at":"2025-01-30T00:50:03.000Z","size":3039,"stargazers_count":89,"open_issues_count":4,"forks_count":59,"subscribers_count":352,"default_branch":"master","last_synced_at":"2025-04-04T00:07:33.716Z","etag":null,"topics":["client","elasticsearch","perl"],"latest_commit_sha":null,"homepage":"https://metacpan.org/pod/Search::Elasticsearch","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"TheMuppets/proprietary_vendor_motorola","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elastic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.asciidoc","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-06-22T14:17:10.000Z","updated_at":"2025-01-30T00:50:08.000Z","dependencies_parsed_at":"2023-01-13T15:10:00.408Z","dependency_job_id":"931f4722-3a92-4370-8946-227567e2f9a6","html_url":"https://github.com/elastic/elasticsearch-perl","commit_stats":{"total_commits":962,"total_committers":33,"mean_commits":"29.151515151515152","dds":"0.23284823284823286","last_synced_commit":"f427713b8f398fe6738dc5e5d547673786f92dd1"},"previous_names":[],"tags_count":114,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-perl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-perl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-perl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-perl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elastic","download_url":"https://codeload.github.com/elastic/elasticsearch-perl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625501,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","elasticsearch","perl"],"created_at":"2024-09-24T20:50:43.302Z","updated_at":"2026-06-02T16:31:11.765Z","avatar_url":"https://github.com/elastic.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elasticsearch Perl client\n\n[![Build status](https://github.com/elastic/elasticsearch-perl/workflows/Perl%20module%20test/badge.svg)](https://github.com/elastic/elasticsearch-perl/actions)\n\nSearch::Elasticsearch is the official Perl API for Elasticsearch. \nThe full documentation is available on https://metacpan.org/module/Search::Elasticsearch.\n\n## Features\n\n* Full support for all Elasticsearch APIs\n* HTTP backend (blocking and asynchronous with [Search::Elasticsearch::Async](https://metacpan.org/module/Search::Elasticsearch::Async))\n* Robust networking support which handles load balancing, failure detection and failover\n* Good defaults\n* Helper utilities for more complex operations, such as bulk indexing, scrolled searches and reindexing.\n* Logging support via `Log::Any`\n* Easy extensibility\n\n## Install\n\n```\ncpanm Search::Elasticsearch\n```\n\n## Connecting to Elasticsearch\n\nYou can connect to Elasticsearch using the following examples:\n\n```perl\nuse Search::Elasticsearch;\n\n# Connect to localhost:9200 (default)\nmy $e = Search::Elasticsearch-\u003enew();\n\n# Connect to http://search:9200\nmy $e = Search::Elasticsearch-\u003enew(\n    nodes =\u003e [ 'search:9200' ]\n);\n\n# Round-robin between two nodes:\nmy $e = Search::Elasticsearch-\u003enew(\n    nodes =\u003e [\n        'search1:9200',\n        'search2:9200'\n    ]\n);\n```\n\nAfter the connection you can start using the Elaticsearch endpoints\nas functions of `$e` object, as follows:\n\n```perl\n# Info endpoint\nmy $result = $e-\u003einfo(); \n\nprintf(\"Name: %s\\n\", $result-\u003e{name}); # e.g. Name: instance-001\nprintf(\"Version: %s\\n\", $result-\u003e{version}-\u003e{number}); # e.g. Version: 8.5.2\n```\n\n## Connecting to Elastic Cloud\n\n[Elastic Cloud](https://www.elastic.co/cloud/) is the cloud solution offered by Elastic. \n\nTo connect the Perl client to Elastic Cloud you need the get the following data:\n\n- the Elasticsearch server address (i.e. public URL);\n- the Elastic Cloud API key;\n\nYou can retrieve these data from your Elastic Cloud dashboard. You need to open the\n**Manage Deployments** page and **Copy endpoint of Elasticsearch** (see screenshot below).\n\n![Endpoint](docs/images/copy_endpoint.png)\n\nThis endpoint is the server address of Test instance (e.g. https://my-test.es.us-central1.gcp.cloud.es.io).\n\nAfter this step, you need to generate an `API key` in the `Management` page under the section `Security`.\n\n![Security](docs/images/create_api_key.png)\n\nWhen you click on `Create API key` button you can choose a name and set the \nother options (for example, restrict privileges, expire after time, and so on).\n\n![Choose an API name](docs/images/api_key_name.png)\n\nAfter this step you will get the `API key`in the API keys page. \n\n![API key](docs/images/cloud_api_key.png)\n\n**IMPORTANT**: you need to copy and store the `API key`in a secure place, since \nyou will not be able to view it again in Elastic Cloud.\n\nFinally, you can use the Elasticsearch endpoint and the API Key for connecting\nthe Perl client as follows:\n\n```perl\nmy $e = Search::Elasticsearch-\u003enew(\n    nodes =\u003e [ 'https://my-test.es.us-central1.gcp.cloud.es.io' ],\n    elastic_cloud_api_key =\u003e 'insert here the API Key'\n);\n```\n\n## Compatibility\n\nLanguage clients are forward compatible; meaning that clients support communicating\nwith greater or equal minor versions of Elasticsearch. Elasticsearch language\nclients are only backwards compatible with default distributions and without\nguarantees made.\n\n## License\n\nThis software is licensed under the [Apache 2 license](LICENSE).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Felasticsearch-perl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felastic%2Felasticsearch-perl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Felasticsearch-perl/lists"}