]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/db/import/search_name.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / import / search_name.feature
1 @DB
2 Feature: Creation of search terms
3     Tests that search_name table is filled correctly
4
5     Scenario: Unnamed POIs have no search entry
6         Given the scene roads-with-pois
7         And the places
8          | osm | class   | type        | geometry |
9          | N1  | place   | house       | :p-N1 |
10         And the named places
11          | osm | class   | type        | geometry |
12          | W1  | highway | residential | :w-north |
13         When importing
14         Then search_name has no entry for N1
15
16     Scenario: Unnamed POI has a search entry when it has unknown addr: tags
17         Given the scene roads-with-pois
18         And the places
19          | osm | class   | type        | housenr | addr+city | geometry |
20          | N1  | place   | house       | 23      | Walltown  | :p-N1 |
21         And the places
22          | osm | class   | type        | name+name   | geometry |
23          | W1  | highway | residential | Rose Street | :w-north |
24         When importing
25         Then search_name contains
26          | object | name_vector | nameaddress_vector |
27          | N1     | #23         | Rose Street, Walltown |
28         When searching for "23 Rose Street, Walltown"
29         Then results contain
30          | osm_type | osm_id | name |
31          | N        | 1      | 23, Rose Street |
32
33     Scenario: Unnamed POI has no search entry when it has known addr: tags
34         Given the scene roads-with-pois
35         And the places
36          | osm | class   | type        | housenr | addr+city | geometry |
37          | N1  | place   | house       | 23      | Walltown  | :p-N1 |
38         And the places
39          | osm | class   | type        | name+name   | addr+city | geometry |
40          | W1  | highway | residential | Rose Street | Walltown | :w-north |
41         When importing
42         Then search_name has no entry for N1
43         When searching for "23 Rose Street, Walltown"
44         Then results contain
45          | osm_type | osm_id | name |
46          | N        | 1      | 23, Rose Street |
47
48     Scenario: Unnamed POI must have a house number to get a search entry
49         Given the scene roads-with-pois
50         And the places
51          | osm | class   | type   | addr+city | geometry |
52          | N1  | place   | house  | Walltown  | :p-N1 |
53         And the places
54          | osm | class   | type        | name+name   | geometry |
55          | W1  | highway | residential | Rose Street | :w-north |
56         When importing
57         Then search_name has no entry for N1
58
59     Scenario: Unnamed POIs doesn't inherit parent name when unknown addr:place is present
60         Given the scene roads-with-pois
61         And the places
62          | osm | class   | type        | housenr | addr+place | geometry |
63          | N1  | place   | house       | 23      | Walltown   | :p-N1 |
64         And the places
65          | osm | class   | type        | name+name    | geometry |
66          | W1  | highway | residential | Rose Street  | :w-north |
67          | N2  | place   | city        | Strange Town | :p-N1 |
68         When importing
69         Then search_name contains
70          | object | name_vector | nameaddress_vector |
71          | N1     | #23         | Walltown |
72         When searching for "23 Rose Street"
73         Then exactly 1 results are returned
74         And results contain
75          | osm_type | osm_id | name |
76          | W        | 1      | Rose Street, Strange Town |
77         When searching for "23 Walltown"
78         Then results contain
79          | osm_type | osm_id | name |
80          | N        | 1      | 23, Walltown, Strange Town |
81
82     Scenario: Unnamed POIs doesn't inherit parent name when addr:place is present only in parent address
83         Given the scene roads-with-pois
84         And the places
85          | osm | class   | type        | housenr | addr+place | geometry |
86          | N1  | place   | house       | 23      | Walltown   | :p-N1 |
87         And the places
88          | osm | class   | type        | name+name    | addr+city | geometry |
89          | W1  | highway | residential | Rose Street  | Walltown  | :w-north |
90          | N2  | place   | suburb      | Strange Town | Walltown  | :p-N1 |
91         When importing
92         Then search_name contains
93          | object | name_vector | nameaddress_vector |
94          | N1     | #23         | Walltown |
95         When searching for "23 Rose Street, Walltown"
96         Then exactly 1 result is returned
97         And results contain
98          | osm_type | osm_id | name |
99          | W        | 1      | Rose Street, Strange Town |
100         When searching for "23  Walltown"
101         Then exactly 1 result is returned
102         And results contain
103          | osm_type | osm_id | name |
104          | N        | 1      | 23, Walltown, Strange Town |
105
106     Scenario: Unnamed POIs does inherit parent name when unknown addr:place and addr:street is present
107         Given the scene roads-with-pois
108         And the places
109          | osm | class   | type   | housenr | addr+place | addr+street | geometry |
110          | N1  | place   | house  | 23      | Walltown   | Lily Street | :p-N1 |
111         And the places
112          | osm | class   | type        | name+name   | geometry |
113          | W1  | highway | residential | Rose Street | :w-north |
114         When importing
115         Then search_name has no entry for N1
116         When searching for "23 Rose Street"
117         Then results contain
118          | osm_type | osm_id | name |
119          | N        | 1      | 23, Rose Street |
120         When searching for "23 Lily Street"
121         Then exactly 0 results are returned
122
123     Scenario: An unknown addr:street is ignored
124         Given the scene roads-with-pois
125         And the places
126          | osm | class   | type   | housenr |  addr+street | geometry |
127          | N1  | place   | house  | 23      |  Lily Street | :p-N1 |
128         And the places
129          | osm | class   | type        | name+name   | geometry |
130          | W1  | highway | residential | Rose Street | :w-north |
131         When importing
132         Then search_name has no entry for N1
133         When searching for "23 Rose Street"
134         Then results contain
135          | osm_type | osm_id | name |
136          | N        | 1      | 23, Rose Street |
137         When searching for "23 Lily Street"
138         Then exactly 0 results are returned
139
140     Scenario: Named POIs have unknown address tags added in the search_name table
141         Given the scene roads-with-pois
142         And the places
143          | osm | class   | type        | name+name  | addr+city | geometry |
144          | N1  | place   | house       | Green Moss | Walltown  | :p-N1 |
145         And the places
146          | osm | class   | type        | name+name   | geometry |
147          | W1  | highway | residential | Rose Street | :w-north |
148         When importing
149         Then search_name contains
150          | object | name_vector | nameaddress_vector |
151          | N1     | #Green Moss | Rose Street, Walltown |
152         When searching for "Green Moss, Rose Street, Walltown"
153         Then results contain
154          | osm_type | osm_id | name |
155          | N        | 1      | Green Moss, Rose Street |
156
157     Scenario: Named POI doesn't inherit parent name when addr:place is present only in parent address
158         Given the scene roads-with-pois
159         And the places
160          | osm | class   | type        | name+name  | addr+place | geometry |
161          | N1  | place   | house       | Green Moss | Walltown  | :p-N1 |
162         And the places
163          | osm | class   | type        | name+name    | geometry |
164          | W1  | highway | residential | Rose Street  | :w-north |
165          | N2  | place   | suburb      | Strange Town | :p-N1 |
166         When importing
167         Then search_name contains
168          | object | name_vector | nameaddress_vector |
169          | N1     | #Green Moss | Walltown |
170         When searching for "Green Moss, Rose Street, Walltown"
171         Then exactly 0 result is returned
172         When searching for "Green Moss, Walltown"
173         Then results contain
174          | osm_type | osm_id | name |
175          | N        | 1      | Green Moss, Walltown, Strange Town |
176
177     Scenario: Named POIs inherit address from parent
178         Given the scene roads-with-pois
179         And the places
180          | osm | class   | type        | name     | geometry |
181          | N1  | place   | house       | foo      | :p-N1 |
182          | W1  | highway | residential | the road | :w-north |
183         When importing
184         Then search_name contains
185          | object | name_vector | nameaddress_vector |
186          | N1     | foo         | the road |
187
188     Scenario: Some addr: tags are added to address when the name exists
189         Given the scene roads-with-pois
190         And the places
191          | osm | class   | type        | name     | geometry |
192          | N1  | place   | state       | new york | 80 80 |
193          | N2  | place   | city        | bonn     | 81 81 |
194          | N3  | place   | suburb      | smalltown| 80 81 |
195         And the named places
196          | osm | class   | type    | addr+city | addr+state | addr+suburb | geometry |
197          | W1  | highway | service | bonn      | New York   | Smalltown   | :w-north |
198         When importing
199         Then search_name contains
200          | object | nameaddress_vector |
201          | W1     | bonn, new york, smalltown |
202
203     Scenario: A known addr:* tag is added even if the name is unknown
204         Given the scene roads-with-pois
205         And the places
206          | osm | class   | type        | name | addr+city | geometry |
207          | W1  | highway | residential | Road | Nandu     | :w-north |
208         When importing
209         Then search_name contains
210          | object | nameaddress_vector |
211          | W1     | nandu |
212
213     Scenario: addr:postcode is not added to the address terms
214         Given the scene roads-with-pois
215         And the places
216          | osm | class   | type        | name+ref  | geometry |
217          | N1  | place   | state       | 12345     | 80 80 |
218         And the named places
219          | osm | class   | type        | addr+postcode | geometry |
220          | W1  | highway | residential | 12345 | :w-north |
221         When importing
222         Then search_name contains not
223          | object | nameaddress_vector |
224          | W1     | 12345 |
225
226     Scenario: a linked place does not show up in search name
227         Given the named places
228          | osm  | class    | type           | admin | geometry |
229          | R13  | boundary | administrative | 9     | poly-area:0.01 |
230         And the named places
231          | osm  | class    | type           | geometry |
232          | N2   | place    | city           | 0.1 0.1 |
233         And the relations
234          | id | members       | tags+type |
235          | 13 | N2:label      | boundary |
236         When importing
237         Then placex contains
238          | object | linked_place_id |
239          | N2     | R13             |
240         And search_name has no entry for N2
241
242     Scenario: a linked waterway does not show up in search name
243         Given the scene split-road
244         And the places
245          | osm | class    | type  | name  | geometry |
246          | W1  | waterway | river | Rhein | :w-2 |
247          | W2  | waterway | river | Rhein | :w-3 |
248          | R13 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 |
249         And the relations
250          | id | members            | tags+type |
251          | 13 | W1,W2:main_stream  | waterway |
252         When importing
253         Then placex contains
254          | object | linked_place_id |
255          | W1     | R13 |
256          | W2     | R13 |
257         And search_name has no entry for W1
258         And search_name has no entry for W2