X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/e16fcf879d9155602aec3780779ca65c964d0626..4c2fa68c552e2a32a63ea2d9f141dbcaeebec4d1:/lib/Geocode.php diff --git a/lib/Geocode.php b/lib/Geocode.php index 1fbbd5c5..11e47d9a 100644 --- a/lib/Geocode.php +++ b/lib/Geocode.php @@ -441,7 +441,7 @@ return $aSearchResults; } - function getGroupedSearches($aSearches, $aPhrases, $aValidTokens, $aWordFrequencyScores, $bStructuredPhrases) + function getGroupedSearches($aSearches, $aPhraseTypes, $aPhrases, $aValidTokens, $aWordFrequencyScores, $bStructuredPhrases) { /* Calculate all searches using aValidTokens i.e. @@ -611,7 +611,10 @@ } } } - if (isset($aValidTokens[$sToken])) + // Look for partial matches. + // Note that there is no point in adding country terms here + // because country are omitted in the address. + if (isset($aValidTokens[$sToken]) && $sPhraseType != 'country') { // Allow searching for a word - but at extra cost foreach($aValidTokens[$sToken] as $aSearchTerm) @@ -1039,7 +1042,7 @@ // Start the search process $aResultPlaceIDs = array(); - $aGroupedSearches = $this->getGroupedSearches($aSearches, $aPhrases, $aValidTokens, $aWordFrequencyScores, $bStructuredPhrases); + $aGroupedSearches = $this->getGroupedSearches($aSearches, $aPhraseTypes, $aPhrases, $aValidTokens, $aWordFrequencyScores, $bStructuredPhrases); if ($this->bReverseInPlan) { @@ -1053,7 +1056,7 @@ $aFinalPhrase = end($aPhrases); $aFinalPhrase['wordsets'] = getInverseWordSets($aFinalPhrase['words'], 0); } - $aReverseGroupedSearches = $this->getGroupedSearches($aSearches, $aPhrases, $aValidTokens, $aWordFrequencyScores, false); + $aReverseGroupedSearches = $this->getGroupedSearches($aSearches, null, $aPhrases, $aValidTokens, $aWordFrequencyScores, false); foreach($aGroupedSearches as $aSearches) {