[[introduction]] == Introduction The official Node.js client for Elasticsearch. === Features * One-to-one mapping with REST API. * Generalized, pluggable architecture. * Configurable, automatic discovery of cluster nodes. * Persistent, Keep-Alive connections. * Load balancing (with pluggable selection strategy) across all available nodes. * TypeScript support out of the box. === Install [source,sh] ---- npm install @elastic/elasticsearch ---- === Compatibility The minimum supported version of Node.js is `v8`. The library is compatible with all Elasticsearch versions since 5.x, but you should use the same major version of the Elasticsearch instance that you are using. ---- # Elasticsearch 7.x @elastic/elasticsearch@7 # Elasticsearch 6.x @elastic/elasticsearch@6 # Elasticsearch 5.x @elastic/elasticsearch@5 ---- ==== Install multiple versions If you are using multiple versions of Elasticsearch, you need to use multiple versions of the client. + In the past, install multiple versions of the same package was not possible, but with `npm v6.9`, you can do that via aliasing. The command you must run to install different version of the client is: [source,sh] ---- npm install @npm:@elastic/elasticsearch@ ---- So for example if you need to install `7.x` and `6.x`, you will run [source,sh] ---- npm install es6@npm:@elastic/elasticsearch@6 npm install es7@npm:@elastic/elasticsearch@7 ---- And your `package.json` will look like the following: [source,json] ---- "dependencies": { "es6": "npm:@elastic/elasticsearch@^6.7.0", "es7": "npm:@elastic/elasticsearch@^7.0.0" } ---- And finally, you will require the packages from your code by using the alias you have defined. [source,js] ---- const { Client: Client6 } = require('es6') const { Client: Client7 } = require('es7') const client6 = new Client6({ node: 'http://localhost:9200' }) const client7 = new Client7({ node: 'http://localhost:9201' }) client6.info(console.log) client7.info(console.log) ---- Finally, if you want to install the client for the next version of Elasticsearch (the one that lives in Elasticsearch's master branch), you can use the following command: [source,sh] ---- npm install esmaster@github:elastic/elasticsearch-js ---- WARNING: This command will install the master branch of the client, which is not considered stable.