From: Sarah Hoffmann Date: Fri, 9 Feb 2024 08:16:11 +0000 (+0100) Subject: reduce importance when computed from search rank X-Git-Tag: v4.4.0~8^2 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/c6d40d4bf44821e9d451ccf43213f9a9caf245b6 reduce importance when computed from search rank --- diff --git a/lib-sql/functions/importance.sql b/lib-sql/functions/importance.sql index 6c089d82..9b2fb773 100644 --- a/lib-sql/functions/importance.sql +++ b/lib-sql/functions/importance.sql @@ -130,7 +130,7 @@ BEGIN -- Still nothing? Fall back to a default. IF result.importance is null THEN - result.importance := 0.75001 - (rank_search::float / 40); + result.importance := 0.40001 - (rank_search::float / 75); END IF; {% if 'secondary_importance' in db.tables %} diff --git a/nominatim/api/results.py b/nominatim/api/results.py index 9b67c51a..fa861bf3 100644 --- a/nominatim/api/results.py +++ b/nominatim/api/results.py @@ -233,7 +233,7 @@ class BaseResult: of the value or an artificial value computed from the place's search rank. """ - return self.importance or (0.7500001 - (self.rank_search/40.0)) + return self.importance or (0.40001 - (self.rank_search/75.0)) def localize(self, locales: Locales) -> None: diff --git a/nominatim/api/search/db_searches.py b/nominatim/api/search/db_searches.py index 555819e7..b3aed35f 100644 --- a/nominatim/api/search/db_searches.py +++ b/nominatim/api/search/db_searches.py @@ -700,7 +700,7 @@ class PlaceSearch(AbstractSearch): or (details.viewbox is not None and details.viewbox.area < 0.5): sql = sql.order_by( penalty - sa.case((tsearch.c.importance > 0, tsearch.c.importance), - else_=0.75001-(sa.cast(tsearch.c.search_rank, sa.Float())/40))) + else_=0.40001-(sa.cast(tsearch.c.search_rank, sa.Float())/75))) sql = sql.add_columns(t.c.importance) diff --git a/test/python/api/test_result_formatting_v1.py b/test/python/api/test_result_formatting_v1.py index 0c54667e..0ff834a4 100644 --- a/test/python/api/test_result_formatting_v1.py +++ b/test/python/api/test_result_formatting_v1.py @@ -77,7 +77,7 @@ def test_search_details_minimal(): 'admin_level': 15, 'names': {}, 'localname': '', - 'calculated_importance': pytest.approx(0.0000001), + 'calculated_importance': pytest.approx(0.00001), 'rank_address': 30, 'rank_search': 30, 'isarea': False, diff --git a/test/python/api/test_results.py b/test/python/api/test_results.py index 2a279028..54a54549 100644 --- a/test/python/api/test_results.py +++ b/test/python/api/test_results.py @@ -37,7 +37,7 @@ def test_minimal_detailed_result(): assert res.lon == 23.1 assert res.lat == 0.5 - assert res.calculated_importance() == pytest.approx(0.0000001) + assert res.calculated_importance() == pytest.approx(0.00001) def test_detailed_result_custom_importance(): res = DetailedResult(SourceTable.PLACEX,