Browse Source

Remove all usage of alpha3/admin0/admin1, update query building to reflect new names in pelias-query

pull/426/head
Diana Shkolnikov 9 years ago committed by Julian Simioni
parent
commit
f3ba492e05
  1. 14
      query/autocomplete.js
  2. 44
      query/autocomplete_defaults.js
  3. 44
      query/reverse_defaults.js
  4. 14
      query/search.js
  5. 44
      query/search_defaults.js
  6. 27
      query/text_parser.js

14
query/autocomplete.js

@ -27,14 +27,14 @@ query.score( peliasQuery.view.address('street') );
query.score( peliasQuery.view.address('postcode') ); query.score( peliasQuery.view.address('postcode') );
// admin components // admin components
query.score( peliasQuery.view.admin('alpha3') ); query.score( peliasQuery.view.admin('country') );
query.score( peliasQuery.view.admin('admin0') ); query.score( peliasQuery.view.admin('country_a') );
query.score( peliasQuery.view.admin('admin1') ); query.score( peliasQuery.view.admin('region') );
query.score( peliasQuery.view.admin('admin1_abbr') ); query.score( peliasQuery.view.admin('region_a') );
query.score( peliasQuery.view.admin('admin2') ); query.score( peliasQuery.view.admin('county') );
query.score( peliasQuery.view.admin('local_admin') ); query.score( peliasQuery.view.admin('localadmin') );
query.score( peliasQuery.view.admin('locality') ); query.score( peliasQuery.view.admin('locality') );
query.score( peliasQuery.view.admin('neighborhood') ); query.score( peliasQuery.view.admin('neighbourhood') );
// scoring boost // scoring boost
query.score( views.focus_selected_layers( views.ngrams_strict ) ); query.score( views.focus_selected_layers( views.ngrams_strict ) );

44
query/autocomplete_defaults.js

@ -50,37 +50,37 @@ module.exports = _.merge({}, peliasQuery.defaults, {
'address:postcode:field': 'address.zip', 'address:postcode:field': 'address.zip',
'address:postcode:boost': 2000, 'address:postcode:boost': 2000,
'admin:alpha3:analyzer': 'standard', 'admin:country_a:analyzer': 'standard',
'admin:alpha3:field': 'alpha3', 'admin:country_a:field': 'parent.country_a',
'admin:alpha3:boost': 1000, 'admin:country_a:boost': 1000,
'admin:admin0:analyzer': 'peliasAdmin', 'admin:country:analyzer': 'peliasAdmin',
'admin:admin0:field': 'admin0', 'admin:country:field': 'parent.country',
'admin:admin0:boost': 800, 'admin:country:boost': 800,
'admin:admin1:analyzer': 'peliasAdmin', 'admin:region:analyzer': 'peliasAdmin',
'admin:admin1:field': 'admin1', 'admin:region:field': 'parent.region',
'admin:admin1:boost': 600, 'admin:region:boost': 600,
'admin:admin1_abbr:analyzer': 'peliasAdmin', 'admin:region_a:analyzer': 'peliasAdmin',
'admin:admin1_abbr:field': 'admin1_abbr', 'admin:region_a:field': 'parent.region_a',
'admin:admin1_abbr:boost': 600, 'admin:region_a:boost': 600,
'admin:admin2:analyzer': 'peliasAdmin', 'admin:county:analyzer': 'peliasAdmin',
'admin:admin2:field': 'admin2', 'admin:county:field': 'parent.county',
'admin:admin2:boost': 400, 'admin:county:boost': 400,
'admin:local_admin:analyzer': 'peliasAdmin', 'admin:localadmin:analyzer': 'peliasAdmin',
'admin:local_admin:field': 'local_admin', 'admin:localadmin:field': 'parent.localadmin',
'admin:local_admin:boost': 200, 'admin:localadmin:boost': 200,
'admin:locality:analyzer': 'peliasAdmin', 'admin:locality:analyzer': 'peliasAdmin',
'admin:locality:field': 'locality', 'admin:locality:field': 'parent.locality',
'admin:locality:boost': 200, 'admin:locality:boost': 200,
'admin:neighborhood:analyzer': 'peliasAdmin', 'admin:neighbourhood:analyzer': 'peliasAdmin',
'admin:neighborhood:field': 'neighborhood', 'admin:neighbourhood:field': 'parent.neighbourhood',
'admin:neighborhood:boost': 200, 'admin:neighbourhood:boost': 200,
'popularity:field': 'popularity', 'popularity:field': 'popularity',
'popularity:modifier': 'log1p', 'popularity:modifier': 'log1p',

44
query/reverse_defaults.js

@ -50,37 +50,37 @@ module.exports = _.merge({}, peliasQuery.defaults, {
'address:postcode:field': 'address.zip', 'address:postcode:field': 'address.zip',
'address:postcode:boost': 3, 'address:postcode:boost': 3,
'admin:alpha3:analyzer': 'standard', 'admin:country_a:analyzer': 'standard',
'admin:alpha3:field': 'alpha3', 'admin:country_a:field': 'parent.country_a',
'admin:alpha3:boost': 5, 'admin:country_a:boost': 5,
'admin:admin0:analyzer': 'peliasAdmin', 'admin:country:analyzer': 'peliasAdmin',
'admin:admin0:field': 'admin0', 'admin:country:field': 'parent.country',
'admin:admin0:boost': 4, 'admin:country:boost': 4,
'admin:admin1:analyzer': 'peliasAdmin', 'admin:region:analyzer': 'peliasAdmin',
'admin:admin1:field': 'admin1', 'admin:region:field': 'parent.region',
'admin:admin1:boost': 3, 'admin:region:boost': 3,
'admin:admin1_abbr:analyzer': 'peliasAdmin', 'admin:region_a:analyzer': 'peliasAdmin',
'admin:admin1_abbr:field': 'admin1_abbr', 'admin:region_a:field': 'parent.region_a',
'admin:admin1_abbr:boost': 3, 'admin:region_a:boost': 3,
'admin:admin2:analyzer': 'peliasAdmin', 'admin:county:analyzer': 'peliasAdmin',
'admin:admin2:field': 'admin2', 'admin:county:field': 'parent.county',
'admin:admin2:boost': 2, 'admin:county:boost': 2,
'admin:local_admin:analyzer': 'peliasAdmin', 'admin:localadmin:analyzer': 'peliasAdmin',
'admin:local_admin:field': 'local_admin', 'admin:localadmin:field': 'parent.localadmin',
'admin:local_admin:boost': 1, 'admin:localadmin:boost': 1,
'admin:locality:analyzer': 'peliasAdmin', 'admin:locality:analyzer': 'peliasAdmin',
'admin:locality:field': 'locality', 'admin:locality:field': 'parent.locality',
'admin:locality:boost': 1, 'admin:locality:boost': 1,
'admin:neighborhood:analyzer': 'peliasAdmin', 'admin:neighbourhood:analyzer': 'peliasAdmin',
'admin:neighborhood:field': 'neighborhood', 'admin:neighbourhood:field': 'parent.neighbourhood',
'admin:neighborhood:boost': 1, 'admin:neighbourhood:boost': 1,
'popularity:field': 'popularity', 'popularity:field': 'popularity',
'popularity:modifier': 'log1p', 'popularity:modifier': 'log1p',

14
query/search.js

@ -25,14 +25,14 @@ query.score( peliasQuery.view.address('street') );
query.score( peliasQuery.view.address('postcode') ); query.score( peliasQuery.view.address('postcode') );
// admin components // admin components
query.score( peliasQuery.view.admin('alpha3') ); query.score( peliasQuery.view.admin('country') );
query.score( peliasQuery.view.admin('admin0') ); query.score( peliasQuery.view.admin('country_a') );
query.score( peliasQuery.view.admin('admin1') ); query.score( peliasQuery.view.admin('region') );
query.score( peliasQuery.view.admin('admin1_abbr') ); query.score( peliasQuery.view.admin('region_a') );
query.score( peliasQuery.view.admin('admin2') ); query.score( peliasQuery.view.admin('county') );
query.score( peliasQuery.view.admin('local_admin') ); query.score( peliasQuery.view.admin('localadmin') );
query.score( peliasQuery.view.admin('locality') ); query.score( peliasQuery.view.admin('locality') );
query.score( peliasQuery.view.admin('neighborhood') ); query.score( peliasQuery.view.admin('neighbourhood') );
// non-scoring hard filters // non-scoring hard filters
query.filter( peliasQuery.view.boundary_circle ); query.filter( peliasQuery.view.boundary_circle );

44
query/search_defaults.js

@ -50,37 +50,37 @@ module.exports = _.merge({}, peliasQuery.defaults, {
'address:postcode:field': 'address.zip', 'address:postcode:field': 'address.zip',
'address:postcode:boost': 20, 'address:postcode:boost': 20,
'admin:alpha3:analyzer': 'standard', 'admin:country_a:analyzer': 'standard',
'admin:alpha3:field': 'alpha3', 'admin:country_a:field': 'parent.country_a',
'admin:alpha3:boost': 5, 'admin:country_a:boost': 5,
'admin:admin0:analyzer': 'peliasAdmin', 'admin:country:analyzer': 'peliasAdmin',
'admin:admin0:field': 'admin0', 'admin:country:field': 'parent.country',
'admin:admin0:boost': 4, 'admin:country:boost': 4,
'admin:admin1:analyzer': 'peliasAdmin', 'admin:region:analyzer': 'peliasAdmin',
'admin:admin1:field': 'admin1', 'admin:region:field': 'parent.region',
'admin:admin1:boost': 3, 'admin:region:boost': 3,
'admin:admin1_abbr:analyzer': 'peliasAdmin', 'admin:region_a:analyzer': 'peliasAdmin',
'admin:admin1_abbr:field': 'admin1_abbr', 'admin:region_a:field': 'parent.region_a',
'admin:admin1_abbr:boost': 3, 'admin:region_a:boost': 3,
'admin:admin2:analyzer': 'peliasAdmin', 'admin:county:analyzer': 'peliasAdmin',
'admin:admin2:field': 'admin2', 'admin:county:field': 'parent.county',
'admin:admin2:boost': 2, 'admin:county:boost': 2,
'admin:local_admin:analyzer': 'peliasAdmin', 'admin:localadmin:analyzer': 'peliasAdmin',
'admin:local_admin:field': 'local_admin', 'admin:localadmin:field': 'parent.localadmin',
'admin:local_admin:boost': 1, 'admin:localadmin:boost': 1,
'admin:locality:analyzer': 'peliasAdmin', 'admin:locality:analyzer': 'peliasAdmin',
'admin:locality:field': 'locality', 'admin:locality:field': 'parent.locality',
'admin:locality:boost': 1, 'admin:locality:boost': 1,
'admin:neighborhood:analyzer': 'peliasAdmin', 'admin:neighbourhood:analyzer': 'peliasAdmin',
'admin:neighborhood:field': 'neighborhood', 'admin:neighbourhood:field': 'parent.neighbourhood',
'admin:neighborhood:boost': 1, 'admin:neighbourhood:boost': 1,
'popularity:field': 'popularity', 'popularity:field': 'popularity',
'popularity:modifier': 'log1p', 'popularity:modifier': 'log1p',

27
query/text_parser.js

@ -1,6 +1,20 @@
var logger = require('pelias-logger').get('api'); var logger = require('pelias-logger').get('api');
var adminFields = require('../helper/adminFields')();
/*
This list should only contain admin fields we are comfortable matching in the case
when we can't identify parts of an address. This shouldn't contain fields like country_a
or postalcode because we should only try to match those when we're sure that's what they are.
*/
var adminFields = [
'country',
'region',
'region_a',
'county',
'localadmin',
'locality',
'neighbourhood'
];
/** /**
@todo: refactor me @todo: refactor me
@ -48,17 +62,17 @@ function addParsedVariablesToQueryVariables( parsed_text, vs ){
// city // city
if( parsed_text.hasOwnProperty('city') ){ if( parsed_text.hasOwnProperty('city') ){
vs.var( 'input:admin2', parsed_text.city ); vs.var( 'input:county', parsed_text.city );
} }
// state // state
if( parsed_text.hasOwnProperty('state') ){ if( parsed_text.hasOwnProperty('state') ){
vs.var( 'input:admin1_abbr', parsed_text.state ); vs.var( 'input:region_a', parsed_text.state );
} }
// country // country
if( parsed_text.hasOwnProperty('country') ){ if( parsed_text.hasOwnProperty('country') ){
vs.var( 'input:alpha3', parsed_text.country ); vs.var( 'input:country_a', parsed_text.country );
} }
// ==== deal with the 'leftover' components ==== // ==== deal with the 'leftover' components ====
@ -76,11 +90,10 @@ function addParsedVariablesToQueryVariables( parsed_text, vs ){
// if we have 'leftovers' then assign them to any fields which // if we have 'leftovers' then assign them to any fields which
// currently don't have a value assigned. // currently don't have a value assigned.
if( leftoversString.length ){ if( leftoversString.length ){
var unmatchedAdminFields = adminFields.slice();
// cycle through fields and set fields which // cycle through fields and set fields which
// are still currently unset // are still currently unset
unmatchedAdminFields.forEach( function( key ){ adminFields.forEach( function( key ){
if( !vs.isset( 'input:' + key ) ){ if( !vs.isset( 'input:' + key ) ){
vs.var( 'input:' + key, leftoversString ); vs.var( 'input:' + key, leftoversString );
} }

Loading…
Cancel
Save