From: Sarah Hoffmann Date: Thu, 20 Feb 2025 13:32:43 +0000 (+0100) Subject: Merge pull request #3655 from lonvia/remove-name-ranking-in-postcode-search X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/adabfee3beb23e56d7bc23eebdab228cb8c82988?hp=46c4446dc20e051c3487ec001fe12d619f488754 Merge pull request #3655 from lonvia/remove-name-ranking-in-postcode-search Tweak penalties for postcode searches --- diff --git a/src/nominatim_api/query_preprocessing/normalize.py b/src/nominatim_api/query_preprocessing/normalize.py index afb93ded..0bb0c8ed 100644 --- a/src/nominatim_api/query_preprocessing/normalize.py +++ b/src/nominatim_api/query_preprocessing/normalize.py @@ -27,5 +27,5 @@ def create(config: QueryConfig) -> QueryProcessingFunc: return lambda phrases: list( filter(lambda p: p.text, - (Phrase(p.ptype, cast(str, normalizer.transliterate(p.text))) + (Phrase(p.ptype, cast(str, normalizer.transliterate(p.text)).strip('-: ')) for p in phrases))) diff --git a/src/nominatim_api/search/icu_tokenizer.py b/src/nominatim_api/search/icu_tokenizer.py index 6f1dcf79..487dd171 100644 --- a/src/nominatim_api/search/icu_tokenizer.py +++ b/src/nominatim_api/search/icu_tokenizer.py @@ -244,7 +244,7 @@ class ICUQueryAnalyzer(AbstractQueryAnalyzer): standardized form search will work with. All information removed at this stage is inevitably lost. """ - return cast(str, self.normalizer.transliterate(text)) + return cast(str, self.normalizer.transliterate(text)).strip('-: ') def split_query(self, query: qmod.QueryStruct) -> Tuple[QueryParts, WordDict]: """ Transliterate the phrases and split them into tokens. diff --git a/test/bdd/api/search/structured.feature b/test/bdd/api/search/structured.feature index a1dd5b83..1d609923 100644 --- a/test/bdd/api/search/structured.feature +++ b/test/bdd/api/search/structured.feature @@ -67,3 +67,13 @@ Feature: Structured search queries Then result addresses contain | town | | Vaduz | + + #3651 + Scenario: Structured search with surrounding extra characters + When sending xml search query "" with address + | street | city | postalcode | + | "19 Am schrägen Weg" | "Vaduz" | "9491" | + Then result addresses contain + | house_number | road | + | 19 | Am Schrägen Weg | +