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