]> git.openstreetmap.org Git - nominatim.git/commitdiff
when a country is in the results, restrict further searches to places
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 7 Jan 2024 16:29:12 +0000 (17:29 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 7 Jan 2024 16:29:12 +0000 (17:29 +0100)
A country search result usually comes with a very high importance.
As a result only other very well known places will show up together
with country results and that means only places with lower address
ranks. Name searches for country names tend to yield a lot of POI
results because the country name is part of the name
(think "embassy of Sweden"). By excluding POIs from further searches,
the search is sped up quite a bit.

nominatim/api/search/db_searches.py

index 68447f6a7429e3c40eea224a433985d4c5a58631..555819e7451dac76042482cd101ffbdfd067c882 100644 (file)
@@ -484,7 +484,14 @@ class CountrySearch(AbstractSearch):
             result.bbox = Bbox.from_wkb(row.bbox)
             results.append(result)
 
-        return results or await self.lookup_in_country_table(conn, details)
+        if not results:
+            results = await self.lookup_in_country_table(conn, details)
+
+        if results:
+            details.min_rank = min(5, details.max_rank)
+            details.max_rank = min(25, details.max_rank)
+
+        return results
 
 
     async def lookup_in_country_table(self, conn: SearchConnection,