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.
$oSearch = clone $this;
$oSearch->iSearchRank++;
$oSearch->sHouseNumber = $oSearchTerm->sToken;
$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
// sanity check: if the housenumber is not mainly made
// up of numbers, add a penalty
if (preg_match('/\\d/', $oSearch->sHouseNumber) === 0
) {
if ($this->iOperator == Operator::NONE) {
$oSearch = clone $this;
) {
if ($this->iOperator == Operator::NONE) {
$oSearch = clone $this;
- $oSearch->iSearchRank++;
+ $oSearch->iSearchRank += 2;
$iOp = $oSearchTerm->iOperator;
if ($iOp == Operator::NONE) {
$iOp = $oSearchTerm->iOperator;
if ($iOp == Operator::NONE) {
$iOp = Operator::NEAR;
}
$oSearch->iSearchRank += 2;
$iOp = Operator::NEAR;
}
$oSearch->iSearchRank += 2;
+ } else if (!$bFirstToken && !$bLastToken) {
+ $oSearch->iSearchRank += 2;
+ }
+ if ($this->sHouseNumber) {
+ $oSearch->iSearchRank++;
}
$oSearch->setPoiSearch(
}
$oSearch->setPoiSearch(