X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/474418f03cf3a1dcb742a526a455f7721d5d0af6..3f306991319e00da949d29cbad7be6ac64199ac5:/lib-php/SearchDescription.php diff --git a/lib-php/SearchDescription.php b/lib-php/SearchDescription.php index a7b26c12..65df58ef 100644 --- a/lib-php/SearchDescription.php +++ b/lib-php/SearchDescription.php @@ -642,6 +642,7 @@ class SearchDescription // Housenumbers on streets and places. $sPlacexSql = 'SELECT array_agg(place_id) FROM placex'; $sPlacexSql .= ' WHERE parent_place_id = sin.place_id AND sin.address_rank < 30'; + $sPlacexSql .= $this->oContext->excludeSQL(' AND place_id'); $sPlacexSql .= ' and housenumber ~* E'.$sHouseNumberRegex; // Interpolations on streets and places. @@ -650,7 +651,8 @@ class SearchDescription if (preg_match('/^[0-9]+$/', $this->sHouseNumber)) { $sIpolHnr = 'WHERE parent_place_id = sin.place_id '; $sIpolHnr .= ' AND startnumber is not NULL AND sin.address_rank < 30'; - $sIpolHnr .= ' AND '.$this->sHouseNumber.' between startnumber and endnumber '; + $sIpolHnr .= ' AND '.$this->sHouseNumber.' between startnumber and endnumber'; + $sIpolHnr .= ' AND ('.$this->sHouseNumber.' - startnumber) % step = 0'; $sInterpolSql = 'SELECT array_agg(place_id) FROM location_property_osmline '.$sIpolHnr; if (CONST_Use_US_Tiger_Data) {