Skip to content

Commit

Permalink
search with units only if units
Browse files Browse the repository at this point in the history
  • Loading branch information
antoine-de committed Nov 27, 2017
1 parent b7091ba commit d489941
Showing 1 changed file with 37 additions and 4 deletions.
41 changes: 37 additions & 4 deletions layout/AddressesUsingIdsQuery.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,37 @@ const _ = require('lodash');
const Query = require('./Query');

function createAddressShould(vs) {
const should = {
bool: {
_name: 'fallback.address',
must: [
{
match_phrase: {
'address_parts.number': vs.var('input:housenumber')
}
},
{
match_phrase: {
'address_parts.street': vs.var('input:street')
}
}
],
filter: {
term: {
layer: 'address'
}
}
}
};

if (vs.isset('boost:address')) {
should.bool.boost = vs.var('boost:address');
}

return should;
}

function createUnitAndAddressShould(vs) {
const should = {
bool: {
_name: 'fallback.address',
Expand Down Expand Up @@ -37,7 +68,6 @@ function createAddressShould(vs) {
}

return should;

}

function createStreetShould(vs) {
Expand Down Expand Up @@ -97,9 +127,12 @@ class AddressesUsingIdsQuery extends Query {
track_scores: vs.var('track_scores')
};

// add housenumber/street if both are available
if (vs.isset('input:housenumber')) {
base.query.function_score.query.bool.should.push( createAddressShould(vs) );
// add unit/housenumber/street if available
if (vs.isset('input:housenumber') && vs.isset('input:unit')) {
base.query.function_score.query.bool.should.push(createUnitAndAddressShould(vs));
}
else if (vs.isset('input:housenumber')) {
base.query.function_score.query.bool.should.push(createAddressShould(vs));
}

// if there are layer->id mappings, add the layers with non-empty ids
Expand Down

0 comments on commit d489941

Please sign in to comment.