Files
elasticsearch-js/docs/introduction.asciidoc
github-actions[bot] 3e6b02b504 [Backport 8.1] Update docs for v8 (#1620)
Co-authored-by: Tomas Della Vedova <delvedor@users.noreply.github.com>
2022-02-11 10:23:54 +01:00

135 lines
3.2 KiB
Plaintext

[[introduction]]
== Introduction
This is the official Node.js client for {es}. This page gives a quick overview
about the features of the client.
[discrete]
=== Features
* One-to-one mapping with REST API.
* Generalized, pluggable architecture.
* Configurable, automatic discovery of cluster nodes.
* Persistent, Keep-Alive connections.
* Load balancing across all available nodes.
* Child client support.
* TypeScript support out of the box.
[discrete]
=== Quick start
[source,js]
----
'use strict'
const { Client } = require('@elastic/elasticsearch')
const client = new Client({ node: 'http://localhost:9200' })
async function run () {
// Let's start by indexing some data
await client.index({
index: 'game-of-thrones',
document: {
character: 'Ned Stark',
quote: 'Winter is coming.'
}
})
await client.index({
index: 'game-of-thrones',
document: {
character: 'Daenerys Targaryen',
quote: 'I am the blood of the dragon.'
}
})
await client.index({
index: 'game-of-thrones',
document: {
character: 'Tyrion Lannister',
quote: 'A mind needs books like a sword needs a whetstone.'
}
})
// here we are forcing an index refresh, otherwise we will not
// get any result in the consequent search
await client.indices.refresh({ index: 'game-of-thrones' })
// Let's search!
const result= await client.search({
index: 'game-of-thrones',
query: {
match: { quote: 'winter' }
}
})
console.log(result.hits.hits)
}
run().catch(console.log)
----
TIP: For an elaborate example of how to ingest data into Elastic Cloud,
refer to {cloud}/ec-getting-started-node-js.html[this page].
[discrete]
==== Install multiple versions
If you are using multiple versions of {es}, you need to use multiple versions of
the client as well. In the past, installing multiple versions of the same
package was not possible, but with `npm v6.9`, you can do it via aliasing.
To install different version of the client, run the following command:
[source,sh]
----
npm install <alias>@npm:@elastic/elasticsearch@<version>
----
For example, if you need to install `7.x` and `6.x`, run the following commands:
[source,sh]
----
npm install es6@npm:@elastic/elasticsearch@6
npm install es7@npm:@elastic/elasticsearch@7
----
Your `package.json` will look similar to the following example:
[source,json]
----
"dependencies": {
"es6": "npm:@elastic/elasticsearch@^6.7.0",
"es7": "npm:@elastic/elasticsearch@^7.0.0"
}
----
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().then(console.log, console.log)
client7.info().then(console.log, console.log)
----
Finally, if you want to install the client for the next version of {es} (the one
that lives in the {es} main branch), use the following command:
[source,sh]
----
npm install esmain@github:elastic/elasticsearch-js
----
WARNING: This command installs the main branch of the client which is not
considered stable.