]> git.openstreetmap.org Git - nominatim.git/commitdiff
Remove country and state nodes from address computation
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 22 Jul 2018 15:21:27 +0000 (17:21 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 17 Nov 2018 22:32:08 +0000 (23:32 +0100)
OSM has by now almost complete coverage of admin
boundaries up to state level. Place nodes will do more
harm than good in this case.

sql/functions.sql
test/bdd/api/search/params.feature
test/bdd/api/search/queries.feature
test/bdd/db/import/placex.feature

index 024d1caa9857574358e4601b416c040eef8f9af7..b07fe6883703cfd469b38b3adfac6a284ccdff8a 100644 (file)
@@ -871,7 +871,11 @@ BEGIN
     ELSEIF NEW.class = 'place' THEN
       IF NEW.type in ('continent') THEN
         NEW.rank_search := 2;
-        NEW.rank_address := NEW.rank_search;
+        IF ST_GeometryType(NEW.geometry) IN ('ST_Polygon','ST_MultiPolygon') THEN
+            NEW.rank_address := NEW.rank_search;
+        ELSE
+            NEW.rank_address := 0;
+        END IF;
         NEW.country_code := NULL;
       ELSEIF NEW.type in ('sea') THEN
         NEW.rank_search := 2;
@@ -879,10 +883,18 @@ BEGIN
         NEW.country_code := NULL;
       ELSEIF NEW.type in ('country') THEN
         NEW.rank_search := 4;
-        NEW.rank_address := NEW.rank_search;
+        IF ST_GeometryType(NEW.geometry) IN ('ST_Polygon','ST_MultiPolygon') THEN
+            NEW.rank_address := NEW.rank_search;
+        ELSE
+            NEW.rank_address := 0;
+        END IF;
       ELSEIF NEW.type in ('state') THEN
         NEW.rank_search := 8;
-        NEW.rank_address := NEW.rank_search;
+        IF ST_GeometryType(NEW.geometry) IN ('ST_Polygon','ST_MultiPolygon') THEN
+            NEW.rank_address := NEW.rank_search;
+        ELSE
+            NEW.rank_address := 0;
+        END IF;
       ELSEIF NEW.type in ('region') THEN
         NEW.rank_search := 18; -- dropped from previous value of 10
         NEW.rank_address := 0; -- So badly miss-used that better to just drop it!
index feacd5f95586bf3ba1d6b489144c4b4842762f9d..23a8670540359f9cbec9e597e87ad6d5c512cd8b 100644 (file)
@@ -51,7 +51,7 @@ Feature: Search queries
           | en |
         Then results contain
           | display_name |
-          | Plei Ya Rê, Kon Tum province, Vietnam |
+          | Plei Ya Rê, Vietnam |
 
     Scenario: Address details with unknown class types
         When sending json search query "Hundeauslauf, Hamburg" with address
index 832d888468a9bd8027dd4e3f249c47339ee3093f..cf5a00c9c093ebb37be08bc43d9a8b4b726114f4 100644 (file)
@@ -26,7 +26,6 @@ Feature: Search queries
           | suburb        | Eilbek |
           | postcode      | 22089 |
           | city_district | Wandsbek |
-          | state         | Hamburg |
           | country       | Deutschland |
           | country_code  | de |
 
@@ -42,7 +41,6 @@ Feature: Search queries
           | suburb        | Eilbek |
           | postcode      | 22089 |
           | city_district | Wandsbek |
-          | state         | Hamburg |
           | country       | Deutschland |
           | country_code  | de |
 
index 7c5c73e2657cb8096a0f1380d187eb1aa8383a24..08ba9cbd8e46283106b0abcdac7cf793dab3dfe4 100644 (file)
@@ -168,10 +168,10 @@ Feature: Import into placex
           | object | rank_search | rank_address |
           | N1     | 30          | 30 |
           | N11    | 30          | 30 |
-          | N12    | 2           | 2 |
+          | N12    | 2           | 0 |
           | N13    | 2           | 0 |
-          | N14    | 4           | 4 |
-          | N15    | 8           | 8 |
+          | N14    | 4           | 0 |
+          | N15    | 8           | 0 |
           | N16    | 18          | 0 |
           | N17    | 12          | 12 |
           | N18    | 16          | 16 |
@@ -211,6 +211,10 @@ Feature: Import into placex
           | R21 | boundary | administrative | 32    | (3 3, 4 4, 3 4, 3 3) |
           | R22 | boundary | nature_park    | 6     | (0 0, 1 0, 0 1, 0 0) |
           | R23 | boundary | natural_reserve| 10    | (0 0, 1 1, 1 0, 0 0) |
+        And the named places
+          | osm | class | type    | geometry |
+          | R40 | place | country | (1 1, 2 2, 1 2, 1 1) |
+          | R41 | place | state   | (3 3, 4 4, 3 4, 3 3) |
         When importing
         Then placex has no entry for N1
         And placex has no entry for W10
@@ -220,6 +224,8 @@ Feature: Import into placex
           | R21    | 30          | 30 |
           | R22    | 12          | 0 |
           | R23    | 20          | 0 |
+          | R40    | 4           | 4 |
+          | R41    | 8           | 8 |
 
     Scenario: search and address ranks for highways correctly assigned
         Given the scene roads-with-pois