From 00b05e239495fe147f9a74f0e36eb243c8a32227 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Thu, 11 Mar 2021 20:34:21 +0100 Subject: [PATCH] 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. --- lib-php/SearchDescription.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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( -- 2.45.2