- Include levenshtein difference in rating when doing city/state match.

git-svn-id: http://svn.osgeo.org/postgis/trunk@2694 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Stephen Frost 2007-08-15 14:39:04 +00:00
parent 9865846b01
commit 7a746fa33d

View file

@ -26,7 +26,7 @@ BEGIN
sl.abbrev as state, sl.abbrev as state,
parsed.zip as zip, parsed.zip as zip,
centroid(wkb_geometry) as address_geom, centroid(wkb_geometry) as address_geom,
100::integer as rating 100::integer + levenshtein_ignore_case(coalesce(zip.city), parsed.location) as rating
FROM FROM
zip_lookup_base zip zip_lookup_base zip
JOIN state_lookup sl on (zip.state = sl.name) 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')) 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; 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 IF tempInt > 0 THEN
OPEN result FOR OPEN result FOR
SELECT SELECT
@ -55,7 +55,7 @@ BEGIN
sl.abbrev as state, sl.abbrev as state,
NULL::integer as zip, NULL::integer as zip,
centroid(wkb_geometry) as address_geom, 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 FROM pl99_d00 pl
JOIN state_lookup sl ON (pl.state = lpad(sl.st_code,2,'0')) 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; WHERE soundex(pl.name) = soundex(parsed.location) and sl.abbrev = parsed.stateAbbrev;