From 4a00a3c0f5fc3a522fab66808f83ddfe144ccb92 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sat, 15 Jul 2023 10:55:34 +0200 Subject: [PATCH] penalize name token splitting when phrases are used --- nominatim/api/search/token_assignment.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nominatim/api/search/token_assignment.py b/nominatim/api/search/token_assignment.py index f1c2f8e8..c05c271a 100644 --- a/nominatim/api/search/token_assignment.py +++ b/nominatim/api/search/token_assignment.py @@ -310,7 +310,8 @@ class _TokenSequence: if (not base.housenumber or first.end >= base.housenumber.start)\ and (not base.qualifier or first.start >= base.qualifier.end): base_penalty = self.penalty - if base.housenumber and base.housenumber.start > first.start: + if (base.housenumber and base.housenumber.start > first.start) \ + or len(query.source) > 1: base_penalty += 0.25 for i in range(first.start + 1, first.end): name, addr = first.split(i) @@ -327,6 +328,8 @@ class _TokenSequence: base_penalty = self.penalty if base.housenumber and base.housenumber.start < last.start: base_penalty += 0.4 + if len(query.source) > 1: + base_penalty += 0.25 for i in range(last.start + 1, last.end): addr, name = last.split(i) penalty = base_penalty + PENALTY_TOKENCHANGE[query.nodes[i].btype] -- 2.39.5