From d2bf986eae120175d24994931a5456f61f90ce0d Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 19 Apr 2024 16:40:32 +0200 Subject: [PATCH] unlisted place names need to go into the address Housenumbers with unlisted place names should be handled like any ither housenumbers with missing address terms. --- lib-sql/functions/placex_triggers.sql | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index 0f74336f..681c302d 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -481,24 +481,20 @@ BEGIN name_vector := array_merge(name_vector, hnr_vector); END IF; - IF is_place_addr THEN - addr_place_ids := token_addr_place_search_tokens(token_info); - IF not addr_place_ids <@ parent_name_vector THEN - -- make sure addr:place terms are always searchable - nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids); - -- If there is a housenumber, also add the place name as a name, - -- so we can search it by the usual housenumber+place algorithms. - IF hnr_vector is not null THEN - name_vector := array_merge(name_vector, addr_place_ids); - END IF; - END IF; - END IF; - -- Cheating here by not recomputing all terms but simply using the ones -- from the parent object. nameaddress_vector := array_merge(nameaddress_vector, parent_name_vector); nameaddress_vector := array_merge(nameaddress_vector, parent_address_vector); + -- make sure addr:place terms are always searchable + IF is_place_addr THEN + addr_place_ids := token_addr_place_search_tokens(token_info); + IF hnr_vector is not null AND not addr_place_ids <@ parent_name_vector + THEN + name_vector := array_merge(name_vector, hnr_vector); + END IF; + nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids); + END IF; END; $$ LANGUAGE plpgsql; -- 2.39.5