elastics
v0.3.0
Published
Simple & handy client for elasticsearch
Downloads
5
Readme
elastics
Simple & handy client for elasticsearch. It's just wrapper around http.request
with shortcuts for elasticsearch.
It implements all available functionality & even upcoming.
Be careful wile using settings for default type & index: they are client's instance variables. So if you are going to have one client in an application you'd better set them explicitly in each call. JS is so asynchronus...
usage
Elastics = require 'elastics'
es = new Elastics
host: hostname # default 'localhost'
port: port # default 9200
index: index # default null
type: type # default null
This params are stored in es.defaults
. You can change them wi
setIndex(index, [type = null])
setType(type)
For the first time I've made all the methods adaptive to arguments. But then there have appeared to much significant arguments so I gave it up.
So all the methods take two args: object with parameters & callback. For now you can omit callback but not params.
params fields:
method
- http request methodindex
type
path
- last part for urlid
- same aspath
but with higher priorityquery
- query string for url. you can set routing params heredata
- request body
You can omit fields stored in defaults
lowest level
request(params, [callback])
request-type level
get()
, put()
, post()
, delete()
- just set the method
highest level
putMapping()
- put withpath = '_mapping'
search()
- post withpath = '_search'
index()
-if
id field is setthen
putelse
post
few examples
es.setType()
# index:null, type: null
es.get {}
# GET http://host::port/
es.post {index: 'index'}
# POST http://host::port/index
es.setIndex 'other_index', 'type
mapping =
type:
fields:
field_one: type: 'string'
es.putMapping {data: mapping}
# PUT http://host::port/other_index/type
# body is json of mapping
es.get {index: 'one', type: 'two', id: 'three'}
# GET http://host::port/one/two/three
see tests
LICENSE
BSD