From 322b30c7246c7e506e5481e497f16b6e5359be8b Mon Sep 17 00:00:00 2001 From: andrewxhill Date: Sat, 20 Sep 2014 00:15:20 +0200 Subject: [PATCH] added synonym readme --- geocoder/admin0/README.md | 11 ++++++++++- geocoder/admin0/sql/synonym_service.sql | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/geocoder/admin0/README.md b/geocoder/admin0/README.md index 6517cc8..3df7217 100644 --- a/geocoder/admin0/README.md +++ b/geocoder/admin0/README.md @@ -71,4 +71,13 @@ __notes:__ - The column `adm0_a3` will be used as a unique identifier. - The ranks are somewhat arbitrarily organized and should be modified later based on our users use of the geocoder (will users more commonly geocode an adm0_a3 or abbreviation?) -- I also forgot to assign a `rank` of `2` to a synonym. \ No newline at end of file +- I also forgot to assign a `rank` of `2` to a synonym. + +# Admin0 Synonym Service + +If you need to look up the iso code for any list of countries without returning any geometries, you can use the endpoint defined in sql/synonym_service.sql. An example works like this, + +```sql +SELECT (admin0_synonym_lookup(Array['United States', 'ESP'])).* +``` + diff --git a/geocoder/admin0/sql/synonym_service.sql b/geocoder/admin0/sql/synonym_service.sql index 5b35c1a..10d7aa2 100644 --- a/geocoder/admin0/sql/synonym_service.sql +++ b/geocoder/admin0/sql/synonym_service.sql @@ -10,6 +10,6 @@ CREATE OR REPLACE FUNCTION admin0_synonym_lookup(name text[]) BEGIN -- FOR ret IN RETURN QUERY - SELECT d.q, n.adm0_a3 FROM (SELECT q, lower(regexp_replace(q, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'))::text x FROM (SELECT unnest(name) q) g) d LEFT OUTER JOIN admin0_synonyms s ON name_ = d.x GROUP BY d.q, n.adm0_a3; + SELECT d.q, s.adm0_a3 FROM (SELECT q, lower(regexp_replace(q, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'))::text x FROM (SELECT unnest(name) q) g) d LEFT OUTER JOIN admin0_synonyms s ON name_ = d.x GROUP BY d.q, s.adm0_a3; END $$ LANGUAGE 'plpgsql' SECURITY DEFINER;