|
@@ -0,0 +1,106 @@
|
|
|
+= Elasticsearch.pm
|
|
|
+
|
|
|
+== Overview
|
|
|
+
|
|
|
+Elasticsearch.pm is the official Perl API for Elasticsearch. The full
|
|
|
+documentation is available on https://metacpan.org/module/Elasticsearch
|
|
|
+and it can be installed with:
|
|
|
+
|
|
|
+[source,sh]
|
|
|
+------------------------------------
|
|
|
+cpanm Elasticsearch
|
|
|
+------------------------------------
|
|
|
+
|
|
|
+=== Features
|
|
|
+
|
|
|
+This client provides:
|
|
|
+
|
|
|
+* Full support for all Elasticsearch APIs
|
|
|
+
|
|
|
+* HTTP backend (currently synchronous only - Any::Event support will be added later)
|
|
|
+
|
|
|
+* 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
|
|
|
+
|
|
|
+* Compatibility with the official clients for Python, Ruby, PHP and Javascript
|
|
|
+
|
|
|
+* Easy extensibility
|
|
|
+
|
|
|
+== Synopsis
|
|
|
+
|
|
|
+[source,perl]
|
|
|
+------------------------------------
|
|
|
+use Elasticsearch;
|
|
|
+
|
|
|
+# Connect to localhost:9200:
|
|
|
+my $e = Elasticsearch->new();
|
|
|
+
|
|
|
+# Round-robin between two nodes:
|
|
|
+my $e = Elasticsearch->new(
|
|
|
+ nodes => [
|
|
|
+ 'search1:9200',
|
|
|
+ 'search2:9200'
|
|
|
+ ]
|
|
|
+);
|
|
|
+
|
|
|
+# Connect to cluster at search1:9200, sniff all nodes and round-robin between them:
|
|
|
+my $e = Elasticsearch->new(
|
|
|
+ nodes => 'search1:9200',
|
|
|
+ cxn_pool => 'Sniff'
|
|
|
+);
|
|
|
+
|
|
|
+# Index a document:
|
|
|
+$e->index(
|
|
|
+ index => 'my_app',
|
|
|
+ type => 'blog_post',
|
|
|
+ id => 1,
|
|
|
+ body => {
|
|
|
+ title => 'Elasticsearch clients',
|
|
|
+ content => 'Interesting content...',
|
|
|
+ date => '2013-09-24'
|
|
|
+ }
|
|
|
+);
|
|
|
+
|
|
|
+# Get the document:
|
|
|
+my $doc = $e->get(
|
|
|
+ index => 'my_app',
|
|
|
+ type => 'blog_post',
|
|
|
+ id => 1
|
|
|
+);
|
|
|
+
|
|
|
+# Search:
|
|
|
+my $results = $e->search(
|
|
|
+ index => 'my_app',
|
|
|
+ body => {
|
|
|
+ query => {
|
|
|
+ match => { title => 'elasticsearch' }
|
|
|
+ }
|
|
|
+ }
|
|
|
+);
|
|
|
+------------------------------------
|
|
|
+
|
|
|
+== Reporting issues
|
|
|
+
|
|
|
+The GitHub repository is http://github.com/elasticsearch/elasticsearch-perl
|
|
|
+and any issues can be reported on the issues list at
|
|
|
+http://github.com/elasticsearch/elasticsearch-perl/issues.
|
|
|
+
|
|
|
+== Contributing
|
|
|
+
|
|
|
+Open source contributions are welcome. Please read our
|
|
|
+https://github.com/elasticsearch/elasticsearch-perl/blob/master/CONTRIBUTING.asciidoc[guide to contributing].
|
|
|
+
|
|
|
+== Copyright and License
|
|
|
+
|
|
|
+This software is Copyright (c) 2013 by Elasticsearch BV.
|
|
|
+
|
|
|
+This is free software, licensed under:
|
|
|
+https://github.com/elasticsearch/elasticsearch-perl/blob/master/LICENSE.txt[The Apache License Version 2.0].
|
|
|
+
|
|
|
+
|
|
|
+
|