correctly exclude streets with housenumber searches

Street result are not subject to the full filtering in the SQL
query, so recheck.
This commit is contained in:
Sarah Hoffmann
2023-11-28 17:53:37 +01:00
parent 25279d009a
commit b2319e52ff
2 changed files with 40 additions and 4 deletions

View File

@@ -766,9 +766,6 @@ class PlaceSearch(AbstractSearch):
assert result
result.bbox = Bbox.from_wkb(row.bbox)
result.accuracy = row.accuracy
if not details.excluded or not result.place_id in details.excluded:
results.append(result)
if self.housenumbers and row.rank_address < 30:
if row.placex_hnr:
subs = _get_placex_housenumbers(conn, row.placex_hnr, details)
@@ -788,6 +785,14 @@ class PlaceSearch(AbstractSearch):
sub.accuracy += 0.6
results.append(sub)
result.accuracy += 1.0 # penalty for missing housenumber
# Only add the street as a result, if it meets all other
# filter conditions.
if (not details.excluded or result.place_id not in details.excluded)\
and (not self.qualifiers or result.category in self.qualifiers.values)\
and result.rank_address >= details.min_rank:
result.accuracy += 1.0 # penalty for missing housenumber
results.append(result)
else:
results.append(result)
return results