forked from hans/Nominatim
revert use of global penalty for a search direction
Adding a penalty to a search description because there is a term at the beginning which looks like a country turned out to be a bad idea as there are too many abbreviations around that match against frequently matched words.
This commit is contained in:
@@ -345,8 +345,6 @@ class Geocode
|
|||||||
|
|
||||||
Score how good the search is so they can be ordered
|
Score how good the search is so they can be ordered
|
||||||
*/
|
*/
|
||||||
$iGlobalRank = 0;
|
|
||||||
|
|
||||||
foreach ($aPhrases as $iPhrase => $oPhrase) {
|
foreach ($aPhrases as $iPhrase => $oPhrase) {
|
||||||
$aNewPhraseSearches = array();
|
$aNewPhraseSearches = array();
|
||||||
$sPhraseType = $bIsStructured ? $oPhrase->getPhraseType() : '';
|
$sPhraseType = $bIsStructured ? $oPhrase->getPhraseType() : '';
|
||||||
@@ -378,8 +376,7 @@ class Geocode
|
|||||||
$iToken == 0 && $iPhrase == 0,
|
$iToken == 0 && $iPhrase == 0,
|
||||||
$iPhrase == 0,
|
$iPhrase == 0,
|
||||||
$iToken + 1 == sizeof($aWordset)
|
$iToken + 1 == sizeof($aWordset)
|
||||||
&& $iPhrase + 1 == sizeof($aPhrases),
|
&& $iPhrase + 1 == sizeof($aPhrases)
|
||||||
$iGlobalRank
|
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($aNewSearches as $oSearch) {
|
foreach ($aNewSearches as $oSearch) {
|
||||||
@@ -460,7 +457,6 @@ class Geocode
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$iRank = $oSearch->addToRank($iGlobalRank);
|
|
||||||
if (!isset($aGroupedSearches[$iRank])) {
|
if (!isset($aGroupedSearches[$iRank])) {
|
||||||
$aGroupedSearches[$iRank] = array();
|
$aGroupedSearches[$iRank] = array();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,19 +68,6 @@ class SearchDescription
|
|||||||
return $this->iSearchRank;
|
return $this->iSearchRank;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Increase the search rank.
|
|
||||||
*
|
|
||||||
* @param integer $iAddRank Number of ranks to increase.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function addToRank($iAddRank)
|
|
||||||
{
|
|
||||||
$this->iSearchRank += $iAddRank;
|
|
||||||
return $this->iSearchRank;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make this search a POI search.
|
* Make this search a POI search.
|
||||||
*
|
*
|
||||||
@@ -187,12 +174,10 @@ class SearchDescription
|
|||||||
* @param bool $bFirstPhrase True if the token is in the first phrase of
|
* @param bool $bFirstPhrase True if the token is in the first phrase of
|
||||||
* the query.
|
* the query.
|
||||||
* @param bool $bLastToken True if the token is at the end of the query.
|
* @param bool $bLastToken True if the token is at the end of the query.
|
||||||
* @param integer $iGlobalRank Changable ranking of all searches in the
|
|
||||||
* batch.
|
|
||||||
*
|
*
|
||||||
* @return SearchDescription[] List of derived search descriptions.
|
* @return SearchDescription[] List of derived search descriptions.
|
||||||
*/
|
*/
|
||||||
public function extendWithFullTerm($aSearchTerm, $bHasPartial, $sPhraseType, $bFirstToken, $bFirstPhrase, $bLastToken, &$iGlobalRank)
|
public function extendWithFullTerm($aSearchTerm, $bHasPartial, $sPhraseType, $bFirstToken, $bFirstPhrase, $bLastToken)
|
||||||
{
|
{
|
||||||
$aNewSearches = array();
|
$aNewSearches = array();
|
||||||
|
|
||||||
@@ -210,12 +195,6 @@ class SearchDescription
|
|||||||
$oSearch->iSearchRank += 5;
|
$oSearch->iSearchRank += 5;
|
||||||
}
|
}
|
||||||
$aNewSearches[] = $oSearch;
|
$aNewSearches[] = $oSearch;
|
||||||
|
|
||||||
// If it is at the beginning, we can be almost sure that
|
|
||||||
// the terms are in the wrong order. Increase score for all searches.
|
|
||||||
if ($bFirstToken) {
|
|
||||||
$iGlobalRank++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} elseif (($sPhraseType == '' || $sPhraseType == 'postalcode')
|
} elseif (($sPhraseType == '' || $sPhraseType == 'postalcode')
|
||||||
&& $aSearchTerm['class'] == 'place' && $aSearchTerm['type'] == 'postcode'
|
&& $aSearchTerm['class'] == 'place' && $aSearchTerm['type'] == 'postcode'
|
||||||
|
|||||||
Reference in New Issue
Block a user