X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/4d5db74c1802c781f8aea18b3fc5e0251e3069bc..3604d0d913ca99acd48f2f6d852e5971da8d8bae:/sql/partition-functions.src.sql diff --git a/sql/partition-functions.src.sql b/sql/partition-functions.src.sql index 17db9c16..97520f99 100644 --- a/sql/partition-functions.src.sql +++ b/sql/partition-functions.src.sql @@ -32,7 +32,7 @@ BEGIN END $$ LANGUAGE plpgsql IMMUTABLE; -create or replace function getNearFeatures(in_partition INTEGER, feature GEOMETRY, maxrank INTEGER, isin_tokens INT[]) RETURNS setof nearfeaturecentr AS $$ +create or replace function getNearFeatures(in_partition INTEGER, feature GEOMETRY, maxrank INTEGER) RETURNS setof nearfeaturecentr AS $$ DECLARE r nearfeaturecentr%rowtype; BEGIN @@ -44,15 +44,8 @@ BEGIN FROM location_area_large_-partition- WHERE geometry && feature AND is_relevant_geometry(ST_Relate(geometry, feature), ST_GeometryType(feature)) - AND rank_search < maxrank AND rank_address < maxrank + AND rank_address < maxrank GROUP BY place_id, keywords, rank_address, rank_search, isguess, postcode, centroid - ORDER BY rank_address, isin_tokens && keywords desc, isguess asc, - ST_Distance(feature, centroid) * - CASE - WHEN rank_address = 16 AND rank_search = 15 THEN 0.2 -- capital city - WHEN rank_address = 16 AND rank_search = 16 THEN 0.25 -- city - WHEN rank_address = 16 AND rank_search = 17 THEN 0.5 -- town - ELSE 1 END ASC -- everything else LOOP RETURN NEXT r; END LOOP; @@ -160,7 +153,7 @@ BEGIN FROM search_name_-partition- WHERE name_vector && isin_token AND centroid && ST_Expand(point, 0.04) - AND search_rank between 16 and 22 + AND search_rank between 16 and 25 ORDER BY ST_Distance(centroid, point) ASC limit 1; RETURN parent; END IF;