]> git.openstreetmap.org Git - nominatim.git/blobdiff - sql/partition-functions.src.sql
Merge pull request #2065 from rustycamper/patch-1
[nominatim.git] / sql / partition-functions.src.sql
index 8e54868b664bbbd108d2e371001a3b55ce1c4ca5..1197b3b7337df4cdcbcde5869fbd4d75ec828cd6 100644 (file)
@@ -72,8 +72,6 @@ BEGIN
   FOR item IN
     SELECT (get_addr_tag_rank(key, country)).*, key, name FROM
       (SELECT skeys(address) as key, svals(address) as name) x
-        WHERE key not in ('country', 'postcode', 'housenumber',
-                          'conscriptionnumber', 'streetnumber')
   LOOP
    IF item.from_rank is null THEN
      CONTINUE;
@@ -89,7 +87,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
@@ -178,7 +176,7 @@ BEGIN
       INTO parent
       WHERE name_vector && isin_token
             AND centroid && ST_Expand(point, 0.015)
-            AND search_rank between 26 and 27
+            AND address_rank between 26 and 27
       ORDER BY ST_Distance(centroid, point) ASC limit 1;
     RETURN parent;
   END IF;
@@ -226,8 +224,8 @@ BEGIN
   IF in_partition = -partition- THEN
     DELETE FROM search_name_-partition- values WHERE place_id = in_place_id;
     IF in_rank_address > 0 THEN
-      INSERT INTO search_name_-partition- (place_id, search_rank, address_rank, name_vector, centroid)
-        values (in_place_id, in_rank_search, in_rank_address, in_name_vector, in_geometry);
+      INSERT INTO search_name_-partition- (place_id, address_rank, name_vector, centroid)
+        values (in_place_id, in_rank_address, in_name_vector, in_geometry);
     END IF;
     RETURN TRUE;
   END IF;