From: Sarah Hoffmann Date: Thu, 11 Mar 2021 21:44:49 +0000 (+0100) Subject: do not mix partial names with other words X-Git-Tag: v3.7.0~19^2 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/6dd2b9c2eca74870107376d87d37589e0ff4694b?ds=sidebyside do not mix partial names with other words As soon as a housenumber, postcode, etc. appear, the name term must obviously be closed and no further partial terms can be appended. --- diff --git a/lib-php/SearchDescription.php b/lib-php/SearchDescription.php index c207b210..228b0999 100644 --- a/lib-php/SearchDescription.php +++ b/lib-php/SearchDescription.php @@ -179,6 +179,7 @@ class SearchDescription // - increase score for finding it anywhere else (optimisation) if (!$bLastToken) { $oSearch->iSearchRank += 5; + $oSearch->iNamePhrase = -1; } $aNewSearches[] = $oSearch; } @@ -205,6 +206,7 @@ class SearchDescription ) { $oSearch = clone $this; $oSearch->iSearchRank++; + $oSearch->iNamePhrase = -1; if (strlen($oSearchTerm->sPostcode) < 4) { $oSearch->iSearchRank += 4 - strlen($oSearchTerm->sPostcode); } @@ -218,6 +220,7 @@ class SearchDescription if (!$this->sHouseNumber && $this->iOperator != Operator::POSTCODE) { $oSearch = clone $this; $oSearch->iSearchRank++; + $oSearch->iNamePhrase = -1; $oSearch->sHouseNumber = $oSearchTerm->sToken; if ($this->iOperator != Operator::NONE) { $oSearch->iSearchRank++; @@ -259,6 +262,7 @@ class SearchDescription if ($this->iOperator == Operator::NONE) { $oSearch = clone $this; $oSearch->iSearchRank += 2; + $oSearch->iNamePhrase = -1; $iOp = $oSearchTerm->iOperator; if ($iOp == Operator::NONE) { @@ -293,6 +297,7 @@ class SearchDescription if (!empty($this->aName) || !($bFirstPhrase || $sPhraseType == '')) { if (($sPhraseType == '' || !$bFirstPhrase) && !$bHasPartial) { $oSearch = clone $this; + $oSearch->iNamePhrase = -1; $oSearch->iSearchRank += 3 * $oSearchTerm->iTermCount; $oSearch->aAddress[$iWordID] = $iWordID; $aNewSearches[] = $oSearch;