location_keywords := location.keywords;
location_isaddress := NOT address_havelevel[location.rank_address];
+ --DEBUG: RAISE WARNING 'should be address: %, is guess: %, rank: %', location_isaddress, location.isguess, location.rank_address;
IF location_isaddress AND location.isguess AND location_parent IS NOT NULL THEN
location_isaddress := ST_Contains(location_parent, location.centroid);
END IF;
- -- RAISE WARNING '% isaddress: %', location.place_id, location_isaddress;
+ --DEBUG: RAISE WARNING '% isaddress: %', location.place_id, location_isaddress;
-- Add it to the list of search terms
IF NOT %REVERSE-ONLY% THEN
nameaddress_vector := array_merge(nameaddress_vector,
END IF;
address_havelevel[location.rank_address] := true;
- IF NOT location.isguess THEN
- SELECT placex.geometry FROM placex
- WHERE obj_place_id = location.place_id INTO location_parent;
+ -- add a hack against postcode ranks
+ IF NOT location.isguess
+ AND location.rank_address != 11 AND location.rank_address != 5
+ THEN
+ SELECT p.geometry FROM placex p
+ WHERE p.place_id = location.place_id INTO location_parent;
END IF;
IF location.rank_address > parent_place_id_rank THEN
parent_place_id_rank = location.rank_address;
END IF;
END IF;
- --DEBUG: RAISE WARNING ' Terms: (%) %',location, nameaddress_vector;
END IF;
END LOOP;
and ( relation_members[i+1] != 'side_stream' or NEW.name->'name' = name->'name')
LOOP
UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = linked_node_id;
+ DELETE FROM search_name WHERE place_id = linked_node_id;
END LOOP;
END IF;
END LOOP;
-- mark the linked place (excludes from search results)
UPDATE placex set linked_place_id = NEW.place_id
WHERE place_id = location.place_id;
+ -- ensure that those places are not found anymore
+ DELETE FROM search_name WHERE place_id = location.place_id;
SELECT wikipedia, importance
FROM compute_importance(location.extratags, NEW.country_code,