]> granicus.if.org Git - postgis/commitdiff
- Include levenshtein difference in rating when doing city/state match.
authorStephen Frost <sfrost@snowman.net>
Wed, 15 Aug 2007 14:39:04 +0000 (14:39 +0000)
committerStephen Frost <sfrost@snowman.net>
Wed, 15 Aug 2007 14:39:04 +0000 (14:39 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2694 b70326c6-7e19-0410-871a-916f4a2858ee

extras/tiger_geocoder/geocode/geocode_location.sql

index 82c4323d5afd8b5f8a2f4d81ad478ebfac5d3e71..618092ccbeab6db72435d215380a2d4f812dfe04 100644 (file)
@@ -26,7 +26,7 @@ BEGIN
         sl.abbrev as state,
         parsed.zip as zip,
         centroid(wkb_geometry) as address_geom,
-        100::integer as rating
+        100::integer + levenshtein_ignore_case(coalesce(zip.city), parsed.location) as rating
     FROM
       zip_lookup_base zip
       JOIN state_lookup sl on (zip.state = sl.name)
@@ -43,7 +43,7 @@ BEGIN
     JOIN state_lookup sl ON (pl.state = lpad(sl.st_code,2,'0'))
     WHERE soundex(pl.name) = soundex(parsed.location) and sl.abbrev = parsed.stateAbbrev;
 
-  -- If that worked, just use the zipcode lookup
+  -- If that worked then use it
   IF tempInt > 0 THEN
     OPEN result FOR
     SELECT
@@ -55,7 +55,7 @@ BEGIN
         sl.abbrev as state,
         NULL::integer as zip,
         centroid(wkb_geometry) as address_geom,
-        100::integer as rating
+        100::integer + levenshtein_ignore_case(coalesce(zip.city), parsed.location) as rating
     FROM pl99_d00 pl
     JOIN state_lookup sl ON (pl.state = lpad(sl.st_code,2,'0'))
     WHERE soundex(pl.name) = soundex(parsed.location) and sl.abbrev = parsed.stateAbbrev;