mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-12-25 05:52:32 +03:00
POIs with unknown addr:place must add parent name to address
The previous behaviour was a left-over from a former version where such POIs parented to the street. Now that they parent to places, it should be included.
This commit is contained in:
parent
cc345f531a
commit
ffb2c93ba3
@ -518,16 +518,14 @@ BEGIN
|
|||||||
addr_place_ids := addr_ids_from_name(address->'place');
|
addr_place_ids := addr_ids_from_name(address->'place');
|
||||||
IF not addr_place_ids <@ parent_name_vector THEN
|
IF not addr_place_ids <@ parent_name_vector THEN
|
||||||
-- addr:place tag exists without a corresponding place. Mix in addr:place
|
-- addr:place tag exists without a corresponding place. Mix in addr:place
|
||||||
-- in the address and drop the name from the parent. This would only be
|
-- in the address.
|
||||||
-- the street name of the nearest street.
|
|
||||||
nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids);
|
|
||||||
name_vector := ARRAY[getorcreate_name_id(housenumber)];
|
name_vector := ARRAY[getorcreate_name_id(housenumber)];
|
||||||
|
nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids);
|
||||||
END IF;
|
END IF;
|
||||||
ELSE
|
|
||||||
nameaddress_vector := array_merge(nameaddress_vector, parent_name_vector);
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- The address vector always gets merged in.
|
-- Merge the parent name and address.
|
||||||
|
nameaddress_vector := array_merge(nameaddress_vector, parent_name_vector);
|
||||||
nameaddress_vector := array_merge(nameaddress_vector, parent_address_vector);
|
nameaddress_vector := array_merge(nameaddress_vector, parent_address_vector);
|
||||||
|
|
||||||
END;
|
END;
|
||||||
|
@ -56,7 +56,7 @@ Feature: Creation of search terms
|
|||||||
When importing
|
When importing
|
||||||
Then search_name has no entry for N1
|
Then search_name has no entry for N1
|
||||||
|
|
||||||
Scenario: Unnamed POIs doesn't inherit parent name when unknown addr:place is present
|
Scenario: Unnamed POIs inherit parent name when unknown addr:place is present
|
||||||
Given the scene roads-with-pois
|
Given the scene roads-with-pois
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | addr+place | geometry |
|
| osm | class | type | housenr | addr+place | geometry |
|
||||||
@ -66,15 +66,18 @@ Feature: Creation of search terms
|
|||||||
| W1 | highway | residential | Rose Street | :w-north |
|
| W1 | highway | residential | Rose Street | :w-north |
|
||||||
| N2 | place | city | Strange Town | :p-N1 |
|
| N2 | place | city | Strange Town | :p-N1 |
|
||||||
When importing
|
When importing
|
||||||
|
Then placex contains
|
||||||
|
| object | parent_place_id |
|
||||||
|
| N1 | N2 |
|
||||||
Then search_name contains
|
Then search_name contains
|
||||||
| object | name_vector | nameaddress_vector |
|
| object | name_vector | nameaddress_vector |
|
||||||
| N1 | #23 | Walltown |
|
| N1 | #23 | Walltown, Strange, Town |
|
||||||
When searching for "23 Rose Street"
|
When searching for "23 Rose Street"
|
||||||
Then exactly 1 results are returned
|
Then exactly 1 results are returned
|
||||||
And results contain
|
And results contain
|
||||||
| osm_type | osm_id | name |
|
| osm_type | osm_id | name |
|
||||||
| W | 1 | Rose Street, Strange Town |
|
| W | 1 | Rose Street, Strange Town |
|
||||||
When searching for "23 Walltown"
|
When searching for "23 Walltown, Strange Town"
|
||||||
Then results contain
|
Then results contain
|
||||||
| osm_type | osm_id | name |
|
| osm_type | osm_id | name |
|
||||||
| N | 1 | 23, Walltown, Strange Town |
|
| N | 1 | 23, Walltown, Strange Town |
|
||||||
|
Loading…
Reference in New Issue
Block a user