]> git.openstreetmap.org Git - nominatim.git/commitdiff
drop searches with excluded country codes earlier
authorSarah Hoffmann <lonvia@denofr.de>
Sat, 7 Oct 2017 10:23:46 +0000 (12:23 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 7 Oct 2017 10:23:46 +0000 (12:23 +0200)
lib/Geocode.php

index 652434cca93ac23d767409418c2f020f0b81124b..a403fa1080c8755e75c9691a6e6ad41dd47e803e 100644 (file)
@@ -922,7 +922,7 @@ class Geocode
             //if (CONST_Debug) _debugDumpGroupedSearches($aGroupedSearches, $aValidTokens);
         }
 
-        // Revisit searches, giving penalty to unlikely combinations
+        // Revisit searches, drop bad searches and give penalty to unlikely combinations.
         $aGroupedSearches = array();
         foreach ($aSearches as $aSearch) {
             if (!$aSearch['aName']) {
@@ -930,6 +930,11 @@ class Geocode
                     continue;
                 }
             }
+            if ($this->aCountryCodes && $aSearch['sCountryCode']
+                && !in_array($aSearch['sCountryCode'], $this->aCountryCodes)) {
+                continue;
+            }
+
             $aSearch['iSearchRank'] += $iGlobalRank;
             $aGroupedSearches[$aSearch['iSearchRank']][] = $aSearch;
         }
@@ -1256,10 +1261,6 @@ class Geocode
                     if (CONST_Debug) echo "<hr><b>Search Loop, group $iGroupLoop, loop $iQueryLoop</b>";
                     if (CONST_Debug) _debugDumpGroupedSearches(array($iGroupedRank => array($aSearch)), $aValidTokens);
 
-                    if ($sCountryCodesSQL && $aSearch['sCountryCode'] && !in_array($aSearch['sCountryCode'], $this->aCountryCodes)) {
-                        continue;
-                    }
-
                     // No location term?
                     if (!sizeof($aSearch['aName']) && !sizeof($aSearch['aAddress'])) {
                         if ($aSearch['sCountryCode'] && !$aSearch['sClass'] && !$aSearch['sHouseNumber'] && !$aSearch['oNear']) {