Skip to content

hemerajs/hemera-elasticsearch

Repository files navigation

Hemera-elasticsearch package

Build Status npm styled with prettier

This is a plugin to use Elasticsearch with Hemera. This plugin based on the official driver elasticsearch.

Start elasticsearch via docker

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.3

Install

npm i hemera-elasticsearch --save

Usage

const hemera = new Hemera(nats)
hemera.use(equire('hemera-joi'))
hemera.use(require('hemera-elasticsearch'), {
  elasticsearch: {
    log: 'trace'
  }
})

Plugin decorators

  • .elasticsearch

Interface


search

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute search
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'search',
    data: {}
  },
  function(err, resp) {}
)

exists

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute exists
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'exists',
    data: {
      index: 'my-index',
      type: 'my-type',
      id: 'jieu99'
    }
  },
  function(err, resp) {}
)

create

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute create
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'create',
    data: {}
  },
  function(err, resp) {}
)

delete

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute delete
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'delete',
    data: {}
  },
  function(err, resp) {}
)

update

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute update
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'update',
    data: {}
  },
  function(err, resp) {}
)

count

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute count
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'count',
    data: {}
  },
  function(err, resp) {}
)

bulk

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute bulk
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'bulk',
    data: {}
  },
  function(err, resp) {}
)

refresh

The pattern is:

  • topic: is the service name to publish to elasticsearch
  • cmd: is the command to execute refresh
  • data: options see elasticsearch documentation

Example:

hemera.act(
  {
    topic: 'elasticsearch',
    cmd: 'refresh',
    data: {}
  },
  function(err, resp) {}
)