]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge pull request #1960 from lonvia/fix-postcodes-duplicated-by-normalization
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 17 Sep 2020 19:23:23 +0000 (21:23 +0200)
committerGitHub <noreply@github.com>
Thu, 17 Sep 2020 19:23:23 +0000 (21:23 +0200)
Make sure that all postcodes have an entry in the word table

sql/functions/normalization.sql
test/bdd/db/import/postcodes.feature

index 1a8bbd84412d8fdb09d3f8291c6b13983afde61e..08087172c578f72186620b1b1fe859773bec2617 100644 (file)
@@ -81,7 +81,8 @@ BEGIN
   lookup_word := upper(trim(postcode));
   lookup_token := ' ' || make_standard_name(lookup_word);
   SELECT min(word_id) FROM word
-    WHERE word_token = lookup_token and class='place' and type='postcode'
+    WHERE word_token = lookup_token and word = lookup_word
+          and class='place' and type='postcode'
     INTO return_word_id;
   IF return_word_id IS NULL THEN
     return_word_id := nextval('seq_word');
index 863a9b3abcb87fe525363fa2c9f56e964033e1a2..3d1dc489482fb90cc65b730175398804473aff05 100644 (file)
@@ -137,3 +137,22 @@ Feature: Import of postcodes
         And word contains
            | word  | class | type |
            | 01982 | place | postcode |
+
+    Scenario: Different postcodes with the same normalization can both be found
+        Given the places
+           | osm | class | type  | addr+postcode | addr+housenumber | geometry |
+           | N34 | place | house | EH4 7EA       | 111              | country:gb |
+           | N35 | place | house | E4 7EA        | 111              | country:gb |
+        When importing
+        Then location_postcode contains exactly
+           | country | postcode | geometry |
+           | gb      | EH4 7EA  | country:gb |
+           | gb      | E4 7EA   | country:gb |
+        When searching for "EH4 7EA"
+        Then results contain
+           | type     | placename |
+           | postcode | EH4 7EA      |
+        When searching for "E4 7EA"
+        Then results contain
+           | type     | placename |
+           | postcode | E4 7EA      |