You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

28 lines
629 B

var queries = require('geopipes-elasticsearch-backend').queries,
sort = require('./sort');
function generate( params ){
var centroid = {
lat: params.lat,
lon: params.lon
};
var query = queries.distance( centroid, { size: params.size || 1 } );
query.sort = query.sort.concat( sort( params ) );
if ( params.categories && params.categories.length > 0 ) {
addCategoriesFilter( query, params.categories );
}
return query;
}
function addCategoriesFilter( query, categories ) {
query.query.filtered.filter.bool.must.push({
terms: { category: categories }
});
}
module.exports = generate;