Elasticsearch Connector
reshuffle-elasticsearch-connector
Code | npm | Code sample
npm install reshuffle-elasticsearch-connector
This connector uses Elasticsearch Node JS Client package.
Reshuffle Elasticsearch Connector
This package contains a Reshuffle connector for connecting to Elasticsearch.
The following example adds a new entry to an existing index:
const { Reshuffle } = require('reshuffle')
const { ElasticsearchConnector } = require('reshuffle-elasticsearch-connector')
const elasticsearchOptions = {
cloud: {
id:
'<name>:<id>',
},
auth: {
username: '<username>',
password: '<password>',
},
}
const app = new Reshuffle()
const connector = new ElasticsearchConnector(app, elasticsearchOptions)
app.start()
connector.sdk().index({
index: 'game-of-thrones',
body: {
character: 'Daenerys Targaryen',
quote: 'I am the blood of the dragon.'
}
})
Table of Contents
Connector Events
N/A
Connector Actions
SDK - Retrieve a Node JS Elasticsearch client
Setup Cloud Elasticsearch
Setup Elastic cloud:
- Go to https://cloud.elastic.co/home
- Click
Create deployment
- Provide a name and create
- Copy the username/password
- Click on your deployment in the deployment list
- copy the cloud ID which is
: - See Configuration Options below for how to connect to this Elasticsearch cloud instance.
Configuration Options
The Elasticsearch connector takes the same options as the Node JS Elasticsearch client. See Node JS Elasticsearch Client options
As an example, for connecting to elasticsearch cloud, provide options as below:
const connector = new ElasticsearchConnector(app, {
cloud: {
id:
'<deployment-name>:<key>', // Cloud ID (see Setup Cloud Elasticsearch above for obtaining this id)
},
auth: {
username: '<username>',
password: '<password>',
},
})
Connector actions
All actions are provided via the sdk. // See full list of actions in Node JS Elasticsearch Client API reference
SDK
Return a Node Elasticsearch Client
const sdk = await connector.sdk()
Examples using the SDK
- Search entries
const entries = await connector.sdk().search({
index: 'my-index',
from: 20,
size: 10,
body: { foo: 'bar' }
}, {
ignore: [404],
maxRetries: 3
})
- Add entry
await connector.sdk().index({
index: 'game-of-thrones',
body: {
character: 'Ned Stark',
quote: 'Winter is coming.'
}
})