Additional penalty for special terms with operator None
should only go to near searches. To reduce the number
of produced searches, restrict the none operator to
appear only in conjunction with the name.
*/
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()));
$iOp = \Nominatim\Operator::NAME;
} else {
$iOp = \Nominatim\Operator::NEAR;
$iOp = \Nominatim\Operator::NAME;
} else {
$iOp = \Nominatim\Operator::NEAR;
} elseif (!$oPosition->isFirstToken() && !$oPosition->isLastToken()) {
$iSearchCost += 2;
}
} elseif (!$oPosition->isFirstToken() && !$oPosition->isLastToken()) {
$iSearchCost += 2;
}