From: Sarah Hoffmann Date: Thu, 11 Mar 2021 19:34:21 +0000 (+0100) Subject: higher penalty for special searches X-Git-Tag: v3.7.0~19^2~3 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/00b05e239495fe147f9a74f0e36eb243c8a32227 higher penalty for special searches Adds a general higher penalty for special search term and an additional one if the term is anywhere but the beginning or the end. Also housenumbers and special searches together are less likely. --- diff --git a/lib-php/SearchDescription.php b/lib-php/SearchDescription.php index 8e8e5acb..94cadda3 100644 --- a/lib-php/SearchDescription.php +++ b/lib-php/SearchDescription.php @@ -219,6 +219,9 @@ class SearchDescription $oSearch = clone $this; $oSearch->iSearchRank++; $oSearch->sHouseNumber = $oSearchTerm->sToken; + if ($this->iOperator != Operator::NONE) { + $oSearch->iSearchRank++; + } // sanity check: if the housenumber is not mainly made // up of numbers, add a penalty if (preg_match('/\\d/', $oSearch->sHouseNumber) === 0 @@ -255,7 +258,7 @@ class SearchDescription ) { if ($this->iOperator == Operator::NONE) { $oSearch = clone $this; - $oSearch->iSearchRank++; + $oSearch->iSearchRank += 2; $iOp = $oSearchTerm->iOperator; if ($iOp == Operator::NONE) { @@ -265,6 +268,11 @@ class SearchDescription $iOp = Operator::NEAR; } $oSearch->iSearchRank += 2; + } else if (!$bFirstToken && !$bLastToken) { + $oSearch->iSearchRank += 2; + } + if ($this->sHouseNumber) { + $oSearch->iSearchRank++; } $oSearch->setPoiSearch(