[[about]]
== About
=== Features
  * One-to-one mapping with REST API
  * Configurable, automatic discovery of cluster nodes
  * Persistent, Keep-Alive connections
  * Intelligent handling of node/connection failure
  * Load balancing (with plug-able selection strategy) across all available nodes.
  * Works great in node, as well as modern browsers (many thanks to https://github com/substack/node-browserify[browserify]!!).
  * Generalized, plug-able, and highly configurable architecture. You can change anything! See <<extending_core_components>>

=== Install in Node

[source,shell]
--------
npm install --save elasticsearch
--------

=== Browser Builds

We also provide builds of the elasticsearch.js client for use in the browser. These versions of the client are currently ***experimental***. We test these builds using https://saucelabs.com/u/elasticsearch-js[saucelabs] in Chrome, Firefox, and Internet Explorer 10, and 11. We also test in IE 9, but there is a known issue with making non-standard (get/post) requests across domains.

==== Bower
If you use bower to manage your dependencies, then just run:

[source,shell]
---------
bower install elasticsearch
---------

==== Download
 * v2.0.0: https://download.elasticsearch.org/elasticsearch/elasticsearch-js/elasticsearch-js-2.0.0.zip[zip], https://download.elasticsearch.org/elasticsearch/elasticsearch-js/elasticsearch-js-2.0.0.tar.gz[tar.gz]


==== Angular Build (elasticsearch.angular.js)
  * Registers the elasticsearch object as a factory `esFactory`
  * Uses Angular's `$http` service
  * Returns promises using Angular's `$q` service to properly trigger digest cycles within Angular

.Create a client instance and register it as a service
[source,js]
-------------------
module.service('es', function (esFactory) {
  return esFactory({
    host: 'localhost:9200',
    // ...
  });
});
-------------------

==== jQuery Build (elasticsearch.jquery.js)
  * Uses jQuery's `.ajax()` functionality
  * Returns jQuery "promises"
  * Registers the module at `jQuery.es`

.Create a client with the jQuery build
[source,js]
-------------------
var client = new $.es.Client({
  hosts: 'localhost:9200'
});
-------------------