X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c5c242d19392ce2253ec0249d18976f49f33bebb..02d357d29e40a8dfe5bc8eb4eac35c3ad3cc0958:/test/bdd/db/import/search_name.feature diff --git a/test/bdd/db/import/search_name.feature b/test/bdd/db/import/search_name.feature index 14cf3769..a5b07e5c 100644 --- a/test/bdd/db/import/search_name.feature +++ b/test/bdd/db/import/search_name.feature @@ -2,6 +2,29 @@ Feature: Creation of search terms Tests that search_name table is filled correctly + Scenario Outline: Comma- and semicolon separated names appear as full names + Given the places + | osm | class | type | name+alt_name | + | N1 | place | city | New YorkBig Apple | + When importing + Then search_name contains + | object | name_vector | + | N1 | #New York, #Big Apple | + + Examples: + | sep | + | , | + | ; | + + Scenario Outline: Name parts before brackets appear as full names + Given the places + | osm | class | type | name+name | + | N1 | place | city | Halle (Saale) | + When importing + Then search_name contains + | object | name_vector | + | N1 | #Halle Saale, #Halle | + Scenario: Unnamed POIs have no search entry Given the scene roads-with-pois And the places @@ -23,14 +46,47 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | :w-north | When importing Then search_name contains - | object | name_vector | nameaddress_vector | - | N1 | #23 | Rose Street, Walltown | - When searching for "23 Rose Street, Walltown" + | object | nameaddress_vector | + | N1 | #Rose Street, Walltown | + When sending search query "23 Rose Street, Walltown" Then results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "Walltown, Rose Street 23" + Then results contain + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "Rose Street 23, Walltown" + Then results contain + | osm | display_name | + | N1 | 23, Rose Street | - Scenario: Unnamed POI has no search entry when it has known addr: tags + Scenario: Searching for unknown addr: tags also works for multiple words + Given the scene roads-with-pois + And the places + | osm | class | type | housenr | addr+city | geometry | + | N1 | place | house | 23 | Little Big Town | :p-N1 | + And the places + | osm | class | type | name+name | geometry | + | W1 | highway | residential | Rose Street | :w-north | + When importing + Then search_name contains + | object | nameaddress_vector | + | N1 | #Rose Street, rose, Little, Big, Town | + When sending search query "23 Rose Street, Little Big Town" + Then results contain + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "Rose Street 23, Little Big Town" + Then results contain + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "Little big Town, Rose Street 23" + Then results contain + | osm | display_name | + | N1 | 23, Rose Street | + + Scenario: Unnamed POI has no search entry when it has known addr: tags Given the scene roads-with-pois And the places | osm | class | type | housenr | addr+city | geometry | @@ -40,10 +96,10 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | Walltown | :w-north | When importing Then search_name has no entry for N1 - When searching for "23 Rose Street, Walltown" + When sending search query "23 Rose Street, Walltown" Then results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | 23, Rose Street | Scenario: Unnamed POI must have a house number to get a search entry Given the scene roads-with-pois @@ -56,7 +112,7 @@ Feature: Creation of search terms When importing 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 And the places | osm | class | type | housenr | addr+place | geometry | @@ -66,18 +122,76 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | :w-north | | N2 | place | city | Strange Town | :p-N1 | When importing - Then search_name contains - | object | name_vector | nameaddress_vector | - | N1 | #23 | Walltown | - When searching for "23 Rose Street" + Then placex contains + | object | parent_place_id | + | N1 | N2 | + When sending search query "23 Rose Street" Then exactly 1 results are returned And results contain - | osm_type | osm_id | - | W | 1 | - When searching for "23 Walltown" + | osm | display_name | + | W1 | Rose Street, Strange Town | + When sending search query "23 Walltown, Strange Town" + Then results contain + | osm | display_name | + | N1 | 23, Walltown, Strange Town | + When sending search query "Walltown 23, Strange Town" + Then results contain + | osm | display_name | + | N1 | 23, Walltown, Strange Town | + When sending search query "Strange Town, Walltown 23" + Then results contain + | osm | display_name | + | N1 | 23, Walltown, Strange Town | + + Scenario: Named POIs can be searched by housenumber when unknown addr:place is present + Given the scene roads-with-pois + And the places + | osm | class | type | name | housenr | addr+place | geometry | + | N1 | place | house | Blue house | 23 | Walltown | :p-N1 | + And the places + | osm | class | type | name+name | geometry | + | W1 | highway | residential | Rose Street | :w-north | + | N2 | place | city | Strange Town | :p-N1 | + When importing + When sending search query "23 Walltown, Strange Town" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Walltown, Strange Town | + When sending search query "Walltown 23, Strange Town" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Walltown, Strange Town | + When sending search query "Strange Town, Walltown 23" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Walltown, Strange Town | + When sending search query "Strange Town, Walltown 23, Blue house" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Walltown, Strange Town | + When sending search query "Strange Town, Walltown, Blue house" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Walltown, Strange Town | + + Scenario: Named POIs can be found when unknown multi-word addr:place is present + Given the scene roads-with-pois + And the places + | osm | class | type | name | housenr | addr+place | geometry | + | N1 | place | house | Blue house | 23 | Moon sun | :p-N1 | + And the places + | osm | class | type | name+name | geometry | + | W1 | highway | residential | Rose Street | :w-north | + | N2 | place | city | Strange Town | :p-N1 | + When importing + When sending search query "23 Moon Sun, Strange Town" + Then results contain + | osm | display_name | + | N1 | Blue house, 23, Moon sun, Strange Town | + When sending search query "Blue house, Moon Sun, Strange Town" Then results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | Blue house, 23, Moon sun, Strange Town | Scenario: Unnamed POIs doesn't inherit parent name when addr:place is present only in parent address Given the scene roads-with-pois @@ -89,19 +203,16 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | Walltown | :w-north | | N2 | place | suburb | Strange Town | Walltown | :p-N1 | When importing - Then search_name contains - | object | name_vector | nameaddress_vector | - | N1 | #23 | Walltown | - When searching for "23 Rose Street, Walltown" + When sending search query "23 Rose Street, Walltown" Then exactly 1 result is returned And results contain - | osm_type | osm_id | - | W | 1 | - When searching for "23 Walltown" + | osm | display_name | + | W1 | Rose Street, Strange Town | + When sending search query "23 Walltown" Then exactly 1 result is returned And results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | 23, Walltown, Strange Town | Scenario: Unnamed POIs does inherit parent name when unknown addr:place and addr:street is present Given the scene roads-with-pois @@ -113,11 +224,11 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | :w-north | When importing Then search_name has no entry for N1 - When searching for "23 Rose Street" + When sending search query "23 Rose Street" Then results contain - | osm_type | osm_id | - | N | 1 | - When searching for "23 Lily Street" + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "23 Lily Street" Then exactly 0 results are returned Scenario: An unknown addr:street is ignored @@ -130,29 +241,45 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | :w-north | When importing Then search_name has no entry for N1 - When searching for "23 Rose Street" + When sending search query "23 Rose Street" Then results contain - | osm_type | osm_id | - | N | 1 | - When searching for "23 Lily Street" + | osm | display_name | + | N1 | 23, Rose Street | + When sending search query "23 Lily Street" Then exactly 0 results are returned - Scenario: Named POIs have unknown address tags added in the search_name table + Scenario: Named POIs get unknown address tags added in the search_name table Given the scene roads-with-pois And the places - | osm | class | type | name+name | addr+city | geometry | - | N1 | place | house | Green Moss | Walltown | :p-N1 | + | osm | class | type | name+name | housenr | addr+city | geometry | + | N1 | place | house | Green Moss | 26 | Walltown | :p-N1 | And the places | osm | class | type | name+name | geometry | | W1 | highway | residential | Rose Street | :w-north | When importing Then search_name contains | object | name_vector | nameaddress_vector | - | N1 | #Green Moss | Rose Street, Walltown | - When searching for "Green Moss, Rose Street, Walltown" + | N1 | #Green Moss | #Rose Street, Walltown | + When sending search query "Green Moss, Rose Street, Walltown" + Then results contain + | osm | display_name | + | N1 | Green Moss, 26, Rose Street | + When sending search query "Green Moss, 26, Rose Street, Walltown" + Then results contain + | osm | display_name | + | N1 | Green Moss, 26, Rose Street | + When sending search query "26, Rose Street, Walltown" + Then results contain + | osm | display_name | + | N1 | Green Moss, 26, Rose Street | + When sending search query "Rose Street 26, Walltown" + Then results contain + | osm | display_name | + | N1 | Green Moss, 26, Rose Street | + When sending search query "Walltown, Rose Street 26" Then results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | Green Moss, 26, Rose Street | Scenario: Named POI doesn't inherit parent name when addr:place is present only in parent address Given the scene roads-with-pois @@ -164,15 +291,12 @@ Feature: Creation of search terms | W1 | highway | residential | Rose Street | :w-north | | N2 | place | suburb | Strange Town | :p-N1 | When importing - Then search_name contains - | object | name_vector | nameaddress_vector | - | N1 | #Green Moss | Walltown | - When searching for "Green Moss, Rose Street, Walltown" + When sending search query "Green Moss, Rose Street, Walltown" Then exactly 0 result is returned - When searching for "Green Moss, Walltown" + When sending search query "Green Moss, Walltown" Then results contain - | osm_type | osm_id | - | N | 1 | + | osm | display_name | + | N1 | Green Moss, Walltown, Strange Town | Scenario: Named POIs inherit address from parent Given the scene roads-with-pois @@ -183,22 +307,21 @@ Feature: Creation of search terms When importing Then search_name contains | object | name_vector | nameaddress_vector | - | N1 | foo | the road | + | N1 | foo | #the road | - Scenario: Some addr: tags are added to address when the name exists + Scenario: Some addr: tags are added to address Given the scene roads-with-pois And the places | osm | class | type | name | geometry | - | N1 | place | state | new york | 80 80 | | N2 | place | city | bonn | 81 81 | | N3 | place | suburb | smalltown| 80 81 | And the named places - | osm | class | type | addr+city | addr+state | addr+suburb | geometry | - | W1 | highway | service | bonn | New York | Smalltown | :w-north | + | osm | class | type | addr+city | addr+municipality | addr+suburb | geometry | + | W1 | highway | service | bonn | New York | Smalltown | :w-north | When importing Then search_name contains | object | nameaddress_vector | - | W1 | bonn, new york, smalltown | + | W1 | bonn, new, york, smalltown | Scenario: A known addr:* tag is added even if the name is unknown Given the scene roads-with-pois @@ -223,21 +346,6 @@ Feature: Creation of search terms | object | nameaddress_vector | | W1 | 12345 | - Scenario: is_in is split and added to the address search terms - Given the scene roads-with-pois - And the places - | osm | class | type | name | geometry | - | N1 | place | state | new york | 80 80 | - | N2 | place | city | bonn | 81 81 | - | N3 | place | suburb | smalltown| 80 81 | - And the named places - | osm | class | type | addr+is_in | geometry | - | W1 | highway | service | bonn, New York, Smalltown | :w-north | - When importing - Then search_name contains - | object | nameaddress_vector | - | W1 | bonn, new york, smalltown | - Scenario: a linked place does not show up in search name Given the named places | osm | class | type | admin | geometry |