]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 19 Sep 2021 13:59:44 +0000 (15:59 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 19 Sep 2021 13:59:44 +0000 (15:59 +0200)
1  2 
lib-sql/functions/address_lookup.sql

index b6c552c492421a66d5254f5d1970ea72831ed1f4,b6adfdc37253703f4896204d085946be683f5745..3ea72cb190b5053d3e485c01ae27db645b2b3d38
@@@ -213,7 -213,7 +213,7 @@@ BEGI
    FOR location IN
      SELECT placex.place_id, osm_type, osm_id, name, class, type,
             coalesce(extratags->'linked_place', extratags->'place') as place_type,
 -           admin_level, fromarea, isaddress,
 +           admin_level, fromarea, isaddress and linked_place_id is NULL as isaddress,
             CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
             distance, country_code, postcode
        FROM place_addressline join placex on (address_place_id = placex.place_id)
                   OR placex.country_code = place.country_code)
        ORDER BY rank_address desc,
                 (place_addressline.place_id = in_place_id) desc,
-                (fromarea and place.centroid is not null and not isaddress
-                 and (place.address is null or avals(name) && avals(place.address))
-                 and ST_Contains(geometry, place.centroid)) desc,
-                isaddress desc, fromarea desc,
-                distance asc, rank_search desc
+                (CASE WHEN coalesce((avals(name) && avals(place.address)), False) THEN 2
+                      WHEN isaddress THEN 0
+                      WHEN fromarea
+                           and place.centroid is not null
+                           and ST_Contains(geometry, place.centroid) THEN 1
+                      ELSE -1 END) desc,
+                fromarea desc, distance asc, rank_search desc
    LOOP
      -- RAISE WARNING '%',location;
      location_isaddress := location.rank_address != current_rank_address;