https://github.com/mono-js/mono-elasticsearch
ElasticSearch module for Mono
https://github.com/mono-js/mono-elasticsearch
elasticsearch mono mono-module
Last synced: 3 months ago
JSON representation
ElasticSearch module for Mono
- Host: GitHub
- URL: https://github.com/mono-js/mono-elasticsearch
- Owner: mono-js
- License: mit
- Created: 2017-08-11T12:24:35.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-20T23:07:26.000Z (almost 7 years ago)
- Last Synced: 2025-03-22T10:16:17.104Z (3 months ago)
- Topics: elasticsearch, mono, mono-module
- Language: JavaScript
- Homepage:
- Size: 196 KB
- Stars: 4
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> ElasticSearch module for [Mono](https://github.com/terrajs/mono)
[](https://www.npmjs.com/package/mono-elasticsearch)
[](https://travis-ci.org/terrajs/mono-elasticsearch)
[](https://codecov.io/gh/terrajs/mono-elasticsearch.js)
[](https://github.com/terrajs/mono-elasticsearch/blob/master/LICENSE)## Installation
```bash
npm install --save mono-elasticsearch
```Then, in your configuration file of your Mono application (example: `conf/application.js`):
```js
module.exports = {
mono: {
modules: ['mono-elasticsearch']
}
}
```## Configuration
Mono-elasticsearch will use the `elasticsearch` property of your configuration (example: `conf/development.js`):
```js
module.exports = {
mono: {
elasticsearch: {
// See https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/configuration.html
host: 'localhost:9200'
}
}
}
```## Usage
In your modules files, you can access `client` instance like this:
```js
const { client } = require('mono-elasticsearch')client.ping({
// ping usually has a 3000ms timeout
requestTimeout: 1000
}, function (error) {
if (error) {
console.trace('elasticsearch cluster is down!');
} else {
console.log('All is well');
}
});
```## Utils
```js
const { SearchValidation, getSearchOptions } = require('mono-elasticsearch')
```- `searchValidation: Object`: Joi object used for route validation inside Mono
- `getSearchOptions(req.query): Object`: Method to transform `req.query` into a usable object for elasticsearch `find`The last 2 methods are useful to create easily listing routes with pagination restriction, best used in combination with [elasticsearch-utils search()]
(https://github.com/terrajs/elasticsearch-utils#search).You can see an example of how to use it in `test/fixtures/utils/src/utils.routes.js`.