X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/64661947109e6ed45a1527529b079ddab26d23e5..f561a3d1c75f3a39bb488adb7bc5ce6478cc17e7:/website/search.php?ds=sidebyside diff --git a/website/search.php b/website/search.php index 6596fca4..1efb7ff5 100755 --- a/website/search.php +++ b/website/search.php @@ -278,7 +278,7 @@ { unset($aPhrases[$iPhrase]); } - } + } // reindex phrases - we make assumptions later on $aPhrases = array_values($aPhrases); @@ -366,6 +366,16 @@ } } */ + + foreach($aTokens as $sToken) + { + // Unknown single word token with a number - assume it is a house number + if (!isset($aValidTokens[' '.$sToken]) && strpos($sToken,' ') === false && preg_match('/[0-9]/', $sToken)) + { + $aValidTokens[' '.$sToken] = array('class'=>'place','type'=>'house'); + } + } + // Any words that have failed completely? // TODO: suggestions @@ -744,7 +754,7 @@ $sSQL .= " from search_name"; $sSQL .= " where ".join(' and ',$aTerms); $sSQL .= " order by ".join(', ',$aOrder); - if ($aSearch['sHouseNumber']) + if ($aSearch['sHouseNumber'] || $aSearch['sClass']) $sSQL .= " limit 50"; elseif (!sizeof($aSearch['aName']) && !sizeof($aSearch['aAddress']) && $aSearch['sClass']) $sSQL .= " limit 1"; @@ -816,7 +826,7 @@ } // Fallback to the road - if (!sizeof($aPlaceIDs) && preg_match('/^[0-9]+$/', $aSearch['sHouseNumber'])) + if (!sizeof($aPlaceIDs) && preg_match('/[0-9]+/', $aSearch['sHouseNumber'])) { $aPlaceIDs = $aRoadPlaceIDs; } @@ -1094,6 +1104,12 @@ $aResult['icon'] = CONST_Website_BaseURL.'images/mapicons/'.$aClassType[$aResult['class'].':'.$aResult['type']]['icon'].'.p.20.png'; } + if (isset($aClassType[$aResult['class'].':'.$aResult['type']]['label']) + && $aClassType[$aResult['class'].':'.$aResult['type']]['label']) + { + $aResult['label'] = $aClassType[$aResult['class'].':'.$aResult['type']]['label']; + } + if ($bShowAddressDetails) { $aResult['address'] = getAddressDetails($oDB, $sLanguagePrefArraySQL, $aResult['place_id'], $aResult['country_code']);