mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
skip most addr: tags with suffixes
Only one addr: tag can be processed currently, so make sure it is the one without suffixes to not get odd data. addr:street is the exception because it uses a different matching mechanism.
This commit is contained in:
@@ -420,8 +420,9 @@ class LegacyICUNameAnalyzer(AbstractAnalyzer):
|
|||||||
if token:
|
if token:
|
||||||
streets.append(token)
|
streets.append(token)
|
||||||
elif item.kind == 'place':
|
elif item.kind == 'place':
|
||||||
token_info.add_place(self._compute_partial_tokens(item.name))
|
if not item.suffix:
|
||||||
elif not item.kind.startswith('_') and \
|
token_info.add_place(self._compute_partial_tokens(item.name))
|
||||||
|
elif not item.kind.startswith('_') and not item.suffix and \
|
||||||
item.kind not in ('country', 'full'):
|
item.kind not in ('country', 'full'):
|
||||||
addr_terms.append((item.kind, self._compute_partial_tokens(item.name)))
|
addr_terms.append((item.kind, self._compute_partial_tokens(item.name)))
|
||||||
|
|
||||||
|
|||||||
@@ -514,6 +514,12 @@ class TestPlaceAddress:
|
|||||||
assert eval(info['place']) == self.name_token_set('HONU', 'LULU')
|
assert eval(info['place']) == self.name_token_set('HONU', 'LULU')
|
||||||
|
|
||||||
|
|
||||||
|
def test_process_place_place_extra(self):
|
||||||
|
info = self.process_address(**{'place:en': 'Honu Lulu'})
|
||||||
|
|
||||||
|
assert 'place' not in info
|
||||||
|
|
||||||
|
|
||||||
def test_process_place_place_empty(self):
|
def test_process_place_place_empty(self):
|
||||||
info = self.process_address(place='🜵')
|
info = self.process_address(place='🜵')
|
||||||
|
|
||||||
@@ -533,6 +539,14 @@ class TestPlaceAddress:
|
|||||||
assert result == {'city': city, 'suburb': city, 'state': state}
|
assert result == {'city': city, 'suburb': city, 'state': state}
|
||||||
|
|
||||||
|
|
||||||
|
def test_process_place_multiple_address_terms(self):
|
||||||
|
info = self.process_address(**{'city': 'Bruxelles', 'city:de': 'Brüssel'})
|
||||||
|
|
||||||
|
result = {k: eval(v) for k,v in info['addr'].items()}
|
||||||
|
|
||||||
|
assert result == {'city': self.name_token_set('Bruxelles')}
|
||||||
|
|
||||||
|
|
||||||
def test_process_place_address_terms_empty(self):
|
def test_process_place_address_terms_empty(self):
|
||||||
info = self.process_address(country='de', city=' ', street='Hauptstr',
|
info = self.process_address(country='de', city=' ', street='Hauptstr',
|
||||||
full='right behind the church')
|
full='right behind the church')
|
||||||
|
|||||||
Reference in New Issue
Block a user