forked from hans/Nominatim
penalize search order where a country comes first
This commit is contained in:
@@ -709,6 +709,8 @@ class Geocode
|
|||||||
|
|
||||||
Score how good the search is so they can be ordered
|
Score how good the search is so they can be ordered
|
||||||
*/
|
*/
|
||||||
|
$iGlobalRank = 0;
|
||||||
|
|
||||||
foreach ($aPhrases as $iPhrase => $aPhrase) {
|
foreach ($aPhrases as $iPhrase => $aPhrase) {
|
||||||
$aNewPhraseSearches = array();
|
$aNewPhraseSearches = array();
|
||||||
if ($bStructuredPhrases) $sPhraseType = $aPhraseTypes[$iPhrase];
|
if ($bStructuredPhrases) $sPhraseType = $aPhraseTypes[$iPhrase];
|
||||||
@@ -745,6 +747,11 @@ class Geocode
|
|||||||
$aSearch['iSearchRank'] += 5;
|
$aSearch['iSearchRank'] += 5;
|
||||||
}
|
}
|
||||||
if ($aSearch['iSearchRank'] < $this->iMaxRank) $aNewWordsetSearches[] = $aSearch;
|
if ($aSearch['iSearchRank'] < $this->iMaxRank) $aNewWordsetSearches[] = $aSearch;
|
||||||
|
// If it is at the beginning, we can be almost sure that this is the wrong order
|
||||||
|
// Increase score for all searches.
|
||||||
|
if ($iToken == 0 && $iPhrase == 0) {
|
||||||
|
$iGlobalRank++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} elseif (($sPhraseType == '' || $sPhraseType == 'postalcode') && $aSearchTerm['class'] == 'place' && $aSearchTerm['type'] == 'postcode') {
|
} elseif (($sPhraseType == '' || $sPhraseType == 'postalcode') && $aSearchTerm['class'] == 'place' && $aSearchTerm['type'] == 'postcode') {
|
||||||
// We need to try the case where the postal code is the primary element (i.e. no way to tell if it is (postalcode, city) OR (city, postalcode) so try both
|
// We need to try the case where the postal code is the primary element (i.e. no way to tell if it is (postalcode, city) OR (city, postalcode) so try both
|
||||||
@@ -922,6 +929,7 @@ class Geocode
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$aSearch['iSearchRank'] += $iGlobalRank;
|
||||||
$aGroupedSearches[$aSearch['iSearchRank']][] = $aSearch;
|
$aGroupedSearches[$aSearch['iSearchRank']][] = $aSearch;
|
||||||
}
|
}
|
||||||
ksort($aGroupedSearches);
|
ksort($aGroupedSearches);
|
||||||
|
|||||||
Reference in New Issue
Block a user