mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-15 19:07:58 +00:00
Experimental option to dry dropping query terms as part of search plan (disabled by default)
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
|
||||
@define('CONST_Search_AreaPolygons_Enabled', true);
|
||||
@define('CONST_Search_AreaPolygons', true);
|
||||
@define('CONST_Search_TryDroppedAddressTerms', false);
|
||||
|
||||
@define('CONST_Suggestions_Enabled', false);
|
||||
|
||||
|
||||
@@ -728,6 +728,42 @@
|
||||
}
|
||||
}
|
||||
|
||||
if (CONST_Search_TryDroppedAddressTerms && sizeof($aStructuredQuery) > 0)
|
||||
{
|
||||
$aCopyGroupedSearches = $aGroupedSearches;
|
||||
foreach($aCopyGroupedSearches as $iGroup => $aSearches)
|
||||
{
|
||||
foreach($aSearches as $iSearch => $aSearch)
|
||||
{
|
||||
$aReductionsList = array($aSearch['aAddress']);
|
||||
$iSearchRank = $aSearch['iSearchRank'];
|
||||
while(sizeof($aReductionsList) > 0)
|
||||
{
|
||||
$iSearchRank += 5;
|
||||
if ($iSearchRank > iMaxRank) break 3;
|
||||
$aNewReductionsList = array();
|
||||
foreach($aReductionsList as $aReductionsWordList)
|
||||
{
|
||||
for ($iReductionWord = 0; $iReductionWord < sizeof($aReductionsWordList); $iReductionWord++)
|
||||
{
|
||||
$aReductionsWordListResult = array_merge(array_slice($aReductionsWordList, 0, $iReductionWord), array_slice($aReductionsWordList, $iReductionWord+1));
|
||||
$aReverseSearch = $aSearch;
|
||||
$aSearch['aAddress'] = $aReductionsWordListResult;
|
||||
$aSearch['iSearchRank'] = $iSearchRank;
|
||||
$aGroupedSearches[$iSearchRank][] = $aReverseSearch;
|
||||
if (sizeof($aReductionsWordListResult) > 0)
|
||||
{
|
||||
$aNewReductionsList[] = $aReductionsWordListResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
$aReductionsList = $aNewReductionsList;
|
||||
}
|
||||
}
|
||||
}
|
||||
ksort($aGroupedSearches);
|
||||
}
|
||||
|
||||
// Filter out duplicate searches
|
||||
$aSearchHash = array();
|
||||
foreach($aGroupedSearches as $iGroup => $aSearches)
|
||||
|
||||
Reference in New Issue
Block a user