forked from hans/Nominatim
do not allow importance to become 0
Importance is weighed against a viewbox factor which disappears when the importance is 0. Fixes #930.
This commit is contained in:
@@ -921,12 +921,12 @@ class Geocode
|
|||||||
$aResult['importance'] = 0.001;
|
$aResult['importance'] = 0.001;
|
||||||
$aResult['foundorder'] = $aResult['addressimportance'];
|
$aResult['foundorder'] = $aResult['addressimportance'];
|
||||||
} else {
|
} else {
|
||||||
// Adjust importance for the number of exact string matches in the result
|
$aResult['importance'] = max(0.001, $aResult['importance']);
|
||||||
$aResult['importance'] *= $this->viewboxImportanceFactor(
|
$aResult['importance'] *= $this->viewboxImportanceFactor(
|
||||||
$aResult['lon'],
|
$aResult['lon'],
|
||||||
$aResult['lat']
|
$aResult['lat']
|
||||||
);
|
);
|
||||||
$aResult['importance'] = max(0.001, $aResult['importance']);
|
// Adjust importance for the number of exact string matches in the result
|
||||||
$iCountWords = 0;
|
$iCountWords = 0;
|
||||||
$sAddress = $aResult['langaddress'];
|
$sAddress = $aResult['langaddress'];
|
||||||
foreach ($aRecheckWords as $i => $sWord) {
|
foreach ($aRecheckWords as $i => $sWord) {
|
||||||
|
|||||||
@@ -679,7 +679,7 @@ class SearchDescription
|
|||||||
if ($this->sHouseNumber) {
|
if ($this->sHouseNumber) {
|
||||||
$sImportanceSQL = '- abs(26 - address_rank) + 3';
|
$sImportanceSQL = '- abs(26 - address_rank) + 3';
|
||||||
} else {
|
} else {
|
||||||
$sImportanceSQL = '(CASE WHEN importance = 0 OR importance IS NULL THEN 0.75-(search_rank::float/40) ELSE importance END)';
|
$sImportanceSQL = '(CASE WHEN importance = 0 OR importance IS NULL THEN 0.75001-(search_rank::float/40) ELSE importance END)';
|
||||||
}
|
}
|
||||||
$sImportanceSQL .= $this->oContext->viewboxImportanceSQL('centroid');
|
$sImportanceSQL .= $this->oContext->viewboxImportanceSQL('centroid');
|
||||||
$aOrder[] = "$sImportanceSQL DESC";
|
$aOrder[] = "$sImportanceSQL DESC";
|
||||||
|
|||||||
Reference in New Issue
Block a user