mirror of https://github.com/pelias/api.git
Peter Johnson a.k.a. insertcoffee
10 years ago
6 changed files with 114 additions and 39 deletions
@ -0,0 +1,43 @@
|
||||
|
||||
/** |
||||
|
||||
query must be an array of hashes, structured like so: |
||||
|
||||
{ |
||||
_index: 'myindex', |
||||
_type: 'mytype', |
||||
_id: 'myid' |
||||
} |
||||
|
||||
**/ |
||||
|
||||
function service( backend, query, cb ){ |
||||
|
||||
// backend command
|
||||
var cmd = { |
||||
body: { |
||||
docs: query |
||||
} |
||||
}; |
||||
|
||||
// query new backend
|
||||
backend().client.mget( cmd, function( err, data ){ |
||||
|
||||
// handle backend errors
|
||||
if( err ){ return cb( err ); } |
||||
|
||||
// map returned documents
|
||||
var docs = []; |
||||
if( data && Array.isArray(data.docs) ){ |
||||
docs = data.docs.map( function( doc ){ |
||||
return doc._source; |
||||
}); |
||||
} |
||||
|
||||
// fire callback
|
||||
return cb( null, docs ); |
||||
}); |
||||
|
||||
} |
||||
|
||||
module.exports = service; |
@ -0,0 +1,30 @@
|
||||
|
||||
/** |
||||
|
||||
cmd can be any valid ES query command |
||||
|
||||
**/ |
||||
|
||||
function service( backend, cmd, cb ){ |
||||
|
||||
// query new backend
|
||||
backend().client.search( cmd, function( err, data ){ |
||||
|
||||
// handle backend errors
|
||||
if( err ){ return cb( err ); } |
||||
|
||||
// map returned documents
|
||||
var docs = []; |
||||
if( data && data.hits && data.hits.total && Array.isArray(data.hits.hits)){ |
||||
docs = data.hits.hits.map( function( hit ){ |
||||
return hit._source; |
||||
}); |
||||
} |
||||
|
||||
// fire callback
|
||||
return cb( null, docs ); |
||||
}); |
||||
|
||||
} |
||||
|
||||
module.exports = service; |
@ -0,0 +1,28 @@
|
||||
|
||||
/** |
||||
|
||||
cmd can be any valid ES suggest command |
||||
|
||||
**/ |
||||
|
||||
function service( backend, cmd, cb ){ |
||||
|
||||
// query new backend
|
||||
backend().client.suggest( cmd, function( err, data ){ |
||||
|
||||
// handle backend errors
|
||||
if( err ){ return cb( err ); } |
||||
|
||||
// map returned documents
|
||||
var docs = []; |
||||
if( data && Array.isArray( data.pelias ) && data.pelias.length ){ |
||||
docs = data['pelias'][0].options || []; |
||||
} |
||||
|
||||
// fire callback
|
||||
return cb( null, docs ); |
||||
}); |
||||
|
||||
} |
||||
|
||||
module.exports = service; |
Loading…
Reference in new issue