forked from hans/Nominatim
Merge pull request #2437 from lonvia/tweak-ranking-searches
Some more tweaks for search interpretation
This commit is contained in:
@@ -59,7 +59,7 @@ class HouseNumber
|
|||||||
$iSearchCost = 1;
|
$iSearchCost = 1;
|
||||||
if (preg_match('/\\d/', $this->sToken) === 0
|
if (preg_match('/\\d/', $this->sToken) === 0
|
||||||
|| preg_match_all('/[^0-9]/', $this->sToken, $aMatches) > 2) {
|
|| preg_match_all('/[^0-9]/', $this->sToken, $aMatches) > 2) {
|
||||||
$iSearchCost++;
|
$iSearchCost += strlen($this->sToken) - 1;
|
||||||
}
|
}
|
||||||
if (!$oSearch->hasOperator(\Nominatim\Operator::NONE)) {
|
if (!$oSearch->hasOperator(\Nominatim\Operator::NONE)) {
|
||||||
$iSearchCost++;
|
$iSearchCost++;
|
||||||
|
|||||||
@@ -44,7 +44,10 @@ class SpecialTerm
|
|||||||
*/
|
*/
|
||||||
public function isExtendable($oSearch, $oPosition)
|
public function isExtendable($oSearch, $oPosition)
|
||||||
{
|
{
|
||||||
return !$oSearch->hasOperator() && $oPosition->isPhrase('');
|
return !$oSearch->hasOperator()
|
||||||
|
&& $oPosition->isPhrase('')
|
||||||
|
&& ($this->iOperator != \Nominatim\Operator::NONE
|
||||||
|
|| (!$oSearch->hasAddress() && !$oSearch->hasHousenumber() && !$oSearch->hasCountry()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,8 +69,8 @@ class SpecialTerm
|
|||||||
$iOp = \Nominatim\Operator::NAME;
|
$iOp = \Nominatim\Operator::NAME;
|
||||||
} else {
|
} else {
|
||||||
$iOp = \Nominatim\Operator::NEAR;
|
$iOp = \Nominatim\Operator::NEAR;
|
||||||
|
$iSearchCost += 2;
|
||||||
}
|
}
|
||||||
$iSearchCost += 2;
|
|
||||||
} elseif (!$oPosition->isFirstToken() && !$oPosition->isLastToken()) {
|
} elseif (!$oPosition->isFirstToken() && !$oPosition->isLastToken()) {
|
||||||
$iSearchCost += 2;
|
$iSearchCost += 2;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user