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.

36 lines
1009 B

9 years ago
var peliasQuery = require('pelias-query');
/**
This view is the same as `peliasQuery.view.focus` with one exception:
if the view is generated successfully, we add a 'filter' clause which
restricts the targeted '_type' to be in the list specified below.
documents which are not in the '_type' list below will simply score 0 for
this section of the query.
**/
module.exports = function( subview ){
return function( vs ){
if( !subview ){ return null; } // subview validation failed
var macroView = peliasQuery.view.focus( subview );
if( !macroView ){ return null; } // macroView validation failed
var view = macroView( vs );
if( view && view.hasOwnProperty('function_score') ){
view.function_score.filter = {
'or': [
{ 'type': { 'value': 'osmnode' } },
{ 'type': { 'value': 'osmway' } },
{ 'type': { 'value': 'osmaddress' } },
{ 'type': { 'value': 'openaddresses' } }
]
};
}
return view;
};
};