mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-15 02:47:59 +00:00
revert to using full names for street name matching
Using partial names turned out to not work well because there are often similarly named streets next to each other. It also prevents us from being able to take into account all addr:street:* tags. This change gets all the full term tokens for the addr:street tags from the DB. As they are used for matching only, we can assume that the term must already be there or there will be no match. This avoid creating unused full name tags.
This commit is contained in:
@@ -471,9 +471,25 @@ class TestPlaceAddress:
|
||||
|
||||
|
||||
def test_process_place_street(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road'}}))
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('GRAND', 'ROAD')
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road')
|
||||
|
||||
|
||||
def test_process_place_nonexisting_street(self):
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert 'street' not in info
|
||||
|
||||
|
||||
def test_process_place_multiple_street_tags(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road',
|
||||
'ref': '05989'}}))
|
||||
info = self.process_address(**{'street': 'Grand Road',
|
||||
'street:sym_ul': '05989'})
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road', '#05989')
|
||||
|
||||
|
||||
def test_process_place_street_empty(self):
|
||||
@@ -482,6 +498,16 @@ class TestPlaceAddress:
|
||||
assert 'street' not in info
|
||||
|
||||
|
||||
def test_process_place_street_from_cache(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road'}}))
|
||||
self.process_address(street='Grand Road')
|
||||
|
||||
# request address again
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road')
|
||||
|
||||
|
||||
def test_process_place_place(self):
|
||||
info = self.process_address(place='Honu Lulu')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user