mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +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_Enabled', true);
|
||||||
@define('CONST_Search_AreaPolygons', true);
|
@define('CONST_Search_AreaPolygons', true);
|
||||||
|
@define('CONST_Search_TryDroppedAddressTerms', false);
|
||||||
|
|
||||||
@define('CONST_Suggestions_Enabled', 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
|
// Filter out duplicate searches
|
||||||
$aSearchHash = array();
|
$aSearchHash = array();
|
||||||
foreach($aGroupedSearches as $iGroup => $aSearches)
|
foreach($aGroupedSearches as $iGroup => $aSearches)
|
||||||
|
|||||||
Reference in New Issue
Block a user