- FOR r IN
- SELECT place_id, name_vector, address_rank, search_rank,
- ST_Distance(centroid, point) as distance, null as isguess
- FROM search_name_-partition-
- WHERE name_vector @> ARRAY[isin_token]
- AND search_rank < maxrank
- UNION ALL
- SELECT place_id, name_vector, address_rank, search_rank,
- ST_Distance(centroid, point) as distance, null as isguess
- FROM search_name_country
- WHERE name_vector @> ARRAY[isin_token]
- AND search_rank < maxrank
- ORDER BY distance ASC limit 1
- LOOP
- RETURN NEXT r;
- END LOOP;
- RETURN;
+ SELECT place_id FROM search_name_-partition-
+ INTO parent
+ WHERE name_vector && isin_token
+ AND centroid && ST_Expand(point, 0.015)
+ AND search_rank between 26 and 27
+ ORDER BY ST_Distance(centroid, point) ASC limit 1;
+ RETURN parent;