From e4b671f8b1047b182500ddc7e9134f02eb3df99b Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Wed, 9 Jul 2025 22:27:12 +0200 Subject: [PATCH] reinstate penalty for partial only matches --- src/nominatim_api/search/db_search_builder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nominatim_api/search/db_search_builder.py b/src/nominatim_api/search/db_search_builder.py index 34f6b6c2..cd734409 100644 --- a/src/nominatim_api/search/db_search_builder.py +++ b/src/nominatim_api/search/db_search_builder.py @@ -287,7 +287,7 @@ class SearchBuilder: for t in name_fulls] ranks.sort(key=lambda r: r.penalty) # Fallback, sum of penalty for partials - default = sum(t.penalty for t in self.query.iter_partials(trange)) + default = sum(t.penalty for t in self.query.iter_partials(trange)) + 0.2 default += sum(n.word_break_penalty for n in self.query.nodes[trange.start + 1:trange.end]) return dbf.FieldRanking(db_field, default, ranks) @@ -329,7 +329,7 @@ class SearchBuilder: if len(ranks) >= 10: # Too many variants, bail out and only add # Worst-case Fallback: sum of penalty of partials - default = sum(t.penalty for t in self.query.iter_partials(trange)) + default = sum(t.penalty for t in self.query.iter_partials(trange)) + 0.2 default += sum(n.word_break_penalty for n in self.query.nodes[trange.start + 1:trange.end]) ranks.append(dbf.RankedTokens(rank.penalty + default, [])) -- 2.39.5