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?ds=sidebyside 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(