]> git.openstreetmap.org Git - nominatim.git/commitdiff
Keep matches without house number
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 16 Nov 2018 23:35:38 +0000 (00:35 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 16 Nov 2018 23:35:38 +0000 (00:35 +0100)
Now that we have result ranking, we can keep the street results
for housenumber searches and reuse them in the next group round
if required. Also fixes an issue where postcode and housenumber
are in the query and one of them is wrong.

Fixes #1200.

lib/SearchDescription.php

index 204a735885f8d3222e6ab1b5236e91f7f87a712f..bf32df9642e40a9fd03edae98f0554079bd86d29 100644 (file)
@@ -448,13 +448,17 @@ class SearchDescription
 
             //now search for housenumber, if housenumber provided
             if ($this->sHouseNumber && !empty($aResults)) {
 
             //now search for housenumber, if housenumber provided
             if ($this->sHouseNumber && !empty($aResults)) {
-                $aNamedPlaceIDs = $aResults;
-                $aResults = $this->queryHouseNumber($oDB, $aNamedPlaceIDs);
+                // Downgrade the rank of the street results, they are missing
+                // the housenumber.
+                foreach ($aResults as $oRes) {
+                    $oRes->iResultRank++;
+                }
+
+                $aHnResults = $this->queryHouseNumber($oDB, $aResults);
 
 
-                if (empty($aResults) && $this->looksLikeFullAddress()) {
-                    $aResults = $aNamedPlaceIDs;
-                    foreach ($aResults as $oRes) {
-                        $oRes->iResultRank++;
+                if (!empty($aHnResults)) {
+                    foreach ($aHnResults as $oRes) {
+                        $aResults[$oRes->iId] = $oRes;
                     }
                 }
             }
                     }
                 }
             }