From: Sarah Hoffmann Date: Wed, 8 May 2013 18:29:59 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/master' X-Git-Tag: deploy~613 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/f8f896dc142d3923bc7260afe5b94ea538bbd546?hp=-c Merge remote-tracking branch 'upstream/master' --- f8f896dc142d3923bc7260afe5b94ea538bbd546 diff --combined settings/settings.php index 31dc8eac,9b4320e8..cdc28a3f --- a/settings/settings.php +++ b/settings/settings.php @@@ -48,14 -48,12 +48,14 @@@ // Website settings @define('CONST_NoAccessControl', true); - @define('CONST_ClosedForIndexing', false); - @define('CONST_ClosedForIndexingExceptionIPs', ''); @define('CONST_BlockedIPs', ''); + @define('CONST_IPBanFile', CONST_BasePath.'/settings/ip_blocks'); + @define('CONST_WhitelistedIPs', ''); + @define('CONST_BlockedUserAgents', ''); + @define('CONST_BlockReverseMaxLoad', 15); @define('CONST_BulkUserIPs', ''); - @define('CONST_Website_BaseURL', 'http://'.php_uname('n').'/'); + @define('CONST_Website_BaseURL', 'http://nominatim.openstreetmap.org/'); @define('CONST_Tile_Default', 'Mapnik'); @define('CONST_Default_Language', false); @@@ -66,8 -64,6 +66,6 @@@ @define('CONST_Search_AreaPolygons_Enabled', true); @define('CONST_Search_AreaPolygons', true); - @define('CONST_Suggestions_Enabled', false); - @define('CONST_Search_TryDroppedAddressTerms', false); @define('CONST_Search_NameOnlySearchFrequencyThreshold', false); diff --combined website/reverse.php index a1c39d9d,f6925846..708aaf78 --- a/website/reverse.php +++ b/website/reverse.php @@@ -4,6 -4,18 +4,6 @@@ require_once(dirname(dirname(__FILE__)).'/lib/init-website.php'); require_once(CONST_BasePath.'/lib/log.php'); - if (strpos(CONST_BulkUserIPs, ','.$_SERVER["REMOTE_ADDR"].',') !== false) - { - $fLoadAvg = getLoadAverage(); - if ($fLoadAvg > 2) sleep(60); - if ($fLoadAvg > 4) sleep(120); - if ($fLoadAvg > 6) - { - echo "Bulk User: Temporary block due to high server load\n"; - exit; - } - } - $oDB =& getDB(); ini_set('memory_limit', '200M'); @@@ -88,6 -100,7 +88,7 @@@ $sSQL .= ' and (name is not null or housenumber is not null)'; $sSQL .= ' and class not in (\'waterway\',\'railway\',\'tunnel\',\'bridge\')'; $sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') '; + $sSQL .= ' and indexed_status = 0 '; $sSQL .= ' OR ST_DWithin('.$sPointSQL.', centroid, '.$fSearchDiam.'))'; $sSQL .= ' ORDER BY ST_distance('.$sPointSQL.', geometry) ASC limit 1'; if (CONST_Debug) var_dump($sSQL); diff --combined website/search.php index afc4748a,dc6b01e4..95d0cadd --- a/website/search.php +++ b/website/search.php @@@ -17,7 -17,6 +17,6 @@@ $aSearchResults = array(); $aExcludePlaceIDs = array(); $sCountryCodesSQL = false; - $sSuggestion = $sSuggestionURL = false; $bDeDupe = isset($_GET['dedupe'])?(bool)$_GET['dedupe']:true; $bReverseInPlan = false; $iFinalLimit = isset($_GET['limit'])?(int)$_GET['limit']:10; @@@ -78,7 -77,6 +77,7 @@@ if (isset($aLangPrefOrder['name:de'])) $bReverseInPlan = true; if (isset($aLangPrefOrder['name:ru'])) $bReverseInPlan = true; if (isset($aLangPrefOrder['name:ja'])) $bReverseInPlan = true; + if (isset($aLangPrefOrder['name:pl'])) $bReverseInPlan = true; $sLanguagePrefArraySQL = "ARRAY[".join(',',array_map("getDBQuoted",$aLangPrefOrder))."]"; @@@ -446,35 -444,6 +445,6 @@@ } if (CONST_Debug) var_Dump($aPhrases, $aValidTokens); - $aSuggestion = array(); - $bSuggestion = false; - if (CONST_Suggestions_Enabled) - { - foreach($aPhrases as $iPhrase => $aPhrase) - { - if (!isset($aValidTokens[' '.$aPhrase['wordsets'][0][0]])) - { - $sQuotedPhrase = getDBQuoted(' '.$aPhrase['wordsets'][0][0]); - $aSuggestionWords = getWordSuggestions($oDB, $aPhrase['wordsets'][0][0]); - $aRow = $aSuggestionWords[0]; - if ($aRow && $aRow['word']) - { - $aSuggestion[] = $aRow['word']; - $bSuggestion = true; - } - else - { - $aSuggestion[] = $aPhrase['string']; - } - } - else - { - $aSuggestion[] = $aPhrase['string']; - } - } - } - if ($bSuggestion) $sSuggestion = join(', ',$aSuggestion); - // Try and calculate GB postcodes we might be missing foreach($aTokens as $sToken) { @@@ -1019,7 -988,6 +989,7 @@@ $aPlaceIDs = $oDB->getCol($sSQL); // If not try the aux fallback table + /* if (!sizeof($aPlaceIDs)) { $sSQL = "select place_id from location_property_aux where parent_place_id in (".$sPlaceIDs.") and housenumber = '".pg_escape_string($aSearch['sHouseNumber'])."'"; @@@ -1031,7 -999,6 +1001,7 @@@ if (CONST_Debug) var_dump($sSQL); $aPlaceIDs = $oDB->getCol($sSQL); } + */ if (!sizeof($aPlaceIDs)) { @@@ -1196,10 -1163,6 +1166,10 @@@ //var_Dump($aResultPlaceIDs);exit; // Get the details for display (is this a redundant extra step?) $sPlaceIDs = join(',',$aResultPlaceIDs); + $sImportanceSQL = ''; + if ($sViewboxSmallSQL) $sImportanceSQL .= " case when ST_Contains($sViewboxSmallSQL, ST_Collect(centroid)) THEN 1 ELSE 0.75 END * "; + if ($sViewboxLargeSQL) $sImportanceSQL .= " case when ST_Contains($sViewboxLargeSQL, ST_Collect(centroid)) THEN 1 ELSE 0.75 END * "; + $sOrderSQL = 'CASE '; foreach(array_keys($aResultPlaceIDs) as $iOrder => $iPlaceID) { @@@ -1212,7 -1175,7 +1182,7 @@@ $sSQL .= "get_name_by_language(name, ARRAY['ref']) as ref,"; $sSQL .= "avg(ST_X(centroid)) as lon,avg(ST_Y(centroid)) as lat, "; //$sSQL .= $sOrderSQL." as porder, "; - $sSQL .= "coalesce(importance,0.75-(rank_search::float/40)) as importance, "; + $sSQL .= $sImportanceSQL."coalesce(importance,0.75-(rank_search::float/40)) as importance, "; $sSQL .= "(select max(p.importance*(p.rank_address+2)) from place_addressline s, placex p where s.place_id = min(placex.place_id) and p.place_id = s.address_place_id and s.isaddress and p.importance is not null) as addressimportance, "; $sSQL .= "(extratags->'place') as extra_place "; $sSQL .= "from placex where place_id in ($sPlaceIDs) "; @@@ -1234,14 -1197,13 +1204,14 @@@ $sSQL .= "null as ref,"; $sSQL .= "avg(ST_X(centroid)) as lon,avg(ST_Y(centroid)) as lat, "; //$sSQL .= $sOrderSQL." as porder, "; - $sSQL .= "-0.15 as importance, "; + $sSQL .= $sImportanceSQL."0.015 as importance, "; $sSQL .= "(select max(p.importance*(p.rank_address+2)) from place_addressline s, placex p where s.place_id = min(location_property_tiger.place_id) and p.place_id = s.address_place_id and s.isaddress and p.importance is not null) as addressimportance, "; $sSQL .= "null as extra_place "; $sSQL .= "from location_property_tiger where place_id in ($sPlaceIDs) "; $sSQL .= "and 30 between $iMinAddressRank and $iMaxAddressRank "; $sSQL .= "group by place_id"; if (!$bDeDupe) $sSQL .= ",place_id"; + /* $sSQL .= " union "; $sSQL .= "select 'L' as osm_type,place_id as osm_id,'place' as class,'house' as type,null as admin_level,30 as rank_search,30 as rank_address,min(place_id) as place_id,'us' as country_code,"; $sSQL .= "get_address_by_language(place_id, $sLanguagePrefArraySQL) as langaddress,"; @@@ -1249,7 -1211,7 +1219,7 @@@ $sSQL .= "null as ref,"; $sSQL .= "avg(ST_X(centroid)) as lon,avg(ST_Y(centroid)) as lat, "; //$sSQL .= $sOrderSQL." as porder, "; - $sSQL .= "-0.10 as importance, "; + $sSQL .= $sImportanceSQL."0.01 as importance, "; $sSQL .= "(select max(p.importance*(p.rank_address+2)) from place_addressline s, placex p where s.place_id = min(location_property_aux.place_id) and p.place_id = s.address_place_id and s.isaddress and p.importance is not null) as addressimportance, "; $sSQL .= "null as extra_place "; $sSQL .= "from location_property_aux where place_id in ($sPlaceIDs) "; @@@ -1259,7 -1221,6 +1229,7 @@@ $sSQL .= ",get_address_by_language(place_id, $sLanguagePrefArraySQL) "; $sSQL .= "order by importance desc"; //$sSQL .= "order by rank_search,rank_address,porder asc"; + */ if (CONST_Debug) { echo "
"; var_dump($sSQL); } $aSearchResults = $oDB->getAll($sSQL); //var_dump($sSQL,$aSearchResults);exit; @@@ -1320,7 -1281,6 +1290,7 @@@ $sSQL .= "and 30 between $iMinAddressRank and $iMaxAddressRank "; $sSQL .= "group by place_id"; if (!$bDeDupe) $sSQL .= ",place_id"; + /* $sSQL .= " union "; $sSQL .= "select 'L' as osm_type,place_id as osm_id,'place' as class,'house' as type,null as admin_level,30 as rank_search,30 as rank_address,min(place_id) as place_id,'us' as country_code,"; $sSQL .= "get_address_by_language(place_id, $sLanguagePrefArraySQL) as langaddress,"; @@@ -1333,7 -1293,6 +1303,7 @@@ $sSQL .= "from location_property_aux where place_id in ($sPlaceIDs) "; $sSQL .= "and 30 between $iMinAddressRank and $iMaxAddressRank "; $sSQL .= "group by place_id"; + */ if (!$bDeDupe) $sSQL .= ",place_id"; $sSQL .= ",get_address_by_language(place_id, $sLanguagePrefArraySQL) "; $sSQL .= "order by importance desc"; @@@ -1411,10 -1370,10 +1381,10 @@@ { preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/',$aMatch[1],$aPolyPoints,PREG_SET_ORDER); } - elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#',$aPointPolygon['astext'],$aMatch)) + /*elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#',$aPointPolygon['astext'],$aMatch)) { preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/',$aMatch[1],$aPolyPoints,PREG_SET_ORDER); - } + }*/ elseif (preg_match('#POINT\\((-?[0-9.]+) (-?[0-9.]+)\\)#',$aPointPolygon['astext'],$aMatch)) { $fRadius = 0.01; @@@ -1598,10 -1557,6 +1568,6 @@@ if ($bShowAddressDetails) $sMoreURL .= '&addressdetails=1'; if (isset($_GET['viewbox']) && $_GET['viewbox']) $sMoreURL .= '&viewbox='.urlencode($_GET['viewbox']); if (isset($_GET['nearlat']) && isset($_GET['nearlon'])) $sMoreURL .= '&nearlat='.(float)$_GET['nearlat'].'&nearlon='.(float)$_GET['nearlon']; - if ($sSuggestion) - { - $sSuggestionURL = $sMoreURL.'&q='.urlencode($sSuggestion); - } $sMoreURL .= '&q='.urlencode($sQuery); if (CONST_Debug) exit;