X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9160cce6d882d0bfe999c86ae976b392e0cddd89..3c7519444867cd9c6b3003c4c88729df21b8c265:/sql/partition-functions.src.sql?ds=sidebyside diff --git a/sql/partition-functions.src.sql b/sql/partition-functions.src.sql index 229fe884..703c08af 100644 --- a/sql/partition-functions.src.sql +++ b/sql/partition-functions.src.sql @@ -47,6 +47,9 @@ BEGIN WHERE geometry && feature AND is_relevant_geometry(ST_Relate(geometry, feature), ST_GeometryType(feature)) AND rank_address < maxrank + -- Postcodes currently still use rank_search to define for which + -- features they are relevant. + AND not (rank_address in (5, 11) and rank_search > maxrank) GROUP BY place_id, keywords, rank_address, rank_search, isguess, postcode, centroid LOOP RETURN NEXT r; @@ -87,7 +90,7 @@ BEGIN AND rank_address between item.from_rank and item.to_rank AND word_ids_from_name(item.name) && keywords GROUP BY place_id, keywords, rank_address, rank_search, isguess, postcode, centroid - ORDER BY ST_Intersects(ST_Collect(geometry), feature), distance LIMIT 1; + ORDER BY bool_or(ST_Intersects(geometry, feature)), distance LIMIT 1; IF r.place_id is null THEN -- If we cannot find a place for the term, just return the -- search term for the given name. That ensures that the address