reduce importance when computed from search rank

This commit is contained in:
Sarah Hoffmann
2024-02-09 09:16:11 +01:00
parent dc1baaa0af
commit c6d40d4bf4
5 changed files with 5 additions and 5 deletions

View File

@@ -130,7 +130,7 @@ BEGIN
-- Still nothing? Fall back to a default. -- Still nothing? Fall back to a default.
IF result.importance is null THEN IF result.importance is null THEN
result.importance := 0.75001 - (rank_search::float / 40); result.importance := 0.40001 - (rank_search::float / 75);
END IF; END IF;
{% if 'secondary_importance' in db.tables %} {% if 'secondary_importance' in db.tables %}

View File

@@ -233,7 +233,7 @@ class BaseResult:
of the value or an artificial value computed from the place's of the value or an artificial value computed from the place's
search rank. 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: def localize(self, locales: Locales) -> None:

View File

@@ -700,7 +700,7 @@ class PlaceSearch(AbstractSearch):
or (details.viewbox is not None and details.viewbox.area < 0.5): or (details.viewbox is not None and details.viewbox.area < 0.5):
sql = sql.order_by( sql = sql.order_by(
penalty - sa.case((tsearch.c.importance > 0, tsearch.c.importance), 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) sql = sql.add_columns(t.c.importance)

View File

@@ -77,7 +77,7 @@ def test_search_details_minimal():
'admin_level': 15, 'admin_level': 15,
'names': {}, 'names': {},
'localname': '', 'localname': '',
'calculated_importance': pytest.approx(0.0000001), 'calculated_importance': pytest.approx(0.00001),
'rank_address': 30, 'rank_address': 30,
'rank_search': 30, 'rank_search': 30,
'isarea': False, 'isarea': False,

View File

@@ -37,7 +37,7 @@ def test_minimal_detailed_result():
assert res.lon == 23.1 assert res.lon == 23.1
assert res.lat == 0.5 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(): def test_detailed_result_custom_importance():
res = DetailedResult(SourceTable.PLACEX, res = DetailedResult(SourceTable.PLACEX,