Elasto
Introduction
Elasto is a simple library to query Elasticsearch.
Topics
Installation
npm install elasto
Getting started
More infos about the config options here.
var Elasto = require('elasto');
Elasto.config({
host: 'localhost:9200',
});
Elasto provides a simple query interface for the common usecases. You can have access to the elasticsearch.js client via Elasto.client
.
The client gets instantiated when you set the config with a host.
Example
All-in-one example. Find more options on API.
Elasto.query({
index: 'development',
type: 'tweets'
})
.near({
lat: 51.5,
lon: -0.1467912,
radius: 3
})
.where('name', 'London')
.size(2)
.from(1)
.fields('name', 'address')
.exec()
.then(function (res) {
});
API
Basic query
Elasto.query({
index: 'development',
type: 'tweets'
})
.exec();
Fields matching
.where
accepts two types of arguments. Either an object with the fields to match.
Elasto.query({
index: 'development',
type: 'tweets'
})
.where({ username: '@jack'})
.exec();
Or key value pair of arguments
Elasto.query({
index: 'development',
type: 'tweets'
})
.where('username', '@jack')
.exec();
Term
Search a term.
Elasto.query({
index: 'development',
type: 'tweets'
})
.term('#love')
.exec();
Size
Limit the size of the query.
Elasto.query({
index: 'development',
type: 'tweets'
})
.limit(3)
.exec();
Sort
Sorts the query by a field the size of the query.
Elasto.query({
index: 'development',
type: 'tweets'
})
.sort('description', 'asc')
.exec();
You can also sort by distance. It will sort based on the location
field in the document.
Elasto.query({
index: 'development',
type: 'tweets'
})
.sort('distance', {
lat: 51.5,
lon: -0.1467912,
})
.exec();
Distance
Finds documents in an area. The radius is in miles.
Elasto.query({
index: 'development',
type: 'tweets'
})
.near({
lat: 51.5,
lon: -0.1467912,
radius: 2
})
.exec();
From
Skips documents in the query.
Elasto.query({
index: 'development',
type: 'tweets'
})
.from(3)
.exec();
Range
Find documents where the field matches a range.
Elasto.query({
index: 'development',
type: 'tweets'
})
.range('characters', [120, 150])
.exec();
You can also query the distance range. It will sort based on the location
field in the document. All the distances are in miles.
Elasto.query({
index: 'development',
type: 'tweets'
})
.range('distance', {
lat: 51.5,
lon: -0.1467912,
from: 2,
to: 3
})
.exec();
Fields
Only return the specific fields.
Elasto.query({
index: 'development',
type: 'tweets'
})
.fields(['name', 'id'])
.exec();
Exclude
Excludes documents where the query gets matched (opposite of .where
).
Elasto.query({
index: 'development',
type: 'tweets'
})
.not('username', '@hater666')
.exec();
License
elasto
is released under the MIT license. See LICENSE.txt
for the complete text.
Contributors