foreach(explode(',',$aParams['exclude_place_ids']) as $iExcludedPlaceID)
{
$iExcludedPlaceID = (int)$iExcludedPlaceID;
- if ($iExcludedPlaceID) $aExcludePlaceIDs[$iExcludedPlaceID] = $iExcludedPlaceID;
+ if ($iExcludedPlaceID)
+ $aExcludePlaceIDs[$iExcludedPlaceID] = $iExcludedPlaceID;
}
- $this->aExcludePlaceIDs = $aExcludePlaceIDs;
+
+ if (isset($aExcludePlaceIDs))
+ $this->aExcludePlaceIDs = $aExcludePlaceIDs;
}
// Only certain ranks of feature
preg_match_all('/\\[([\\w ]*)\\]/u', $sQuery, $aSpecialTermsRaw, PREG_SET_ORDER);
$aSpecialTerms = array();
- if (isset($aStructuredQuery['amenity']) && $aStructuredQuery['amenity'])
+ if (isset($this->aStructuredQuery['amenity']) && $this->aStructuredQuery['amenity'])
{
- $aSpecialTermsRaw[] = array('['.$aStructuredQuery['amenity'].']', $aStructuredQuery['amenity']);
- unset($aStructuredQuery['amenity']);
+ $aSpecialTermsRaw[] = array('['.$this->aStructuredQuery['amenity'].']', $this->aStructuredQuery['amenity']);
+ unset($this->aStructuredQuery['amenity']);
}
foreach($aSpecialTermsRaw as $aSpecialTerm)
{
foreach($aDatabaseWords as $aToken)
{
// Very special case - require 2 letter country param to match the country code found
- if ($bStructuredPhrases && $aToken['country_code'] && !empty($aStructuredQuery['country'])
- && strlen($aStructuredQuery['country']) == 2 && strtolower($aStructuredQuery['country']) != $aToken['country_code'])
+ if ($bStructuredPhrases && $aToken['country_code'] && !empty($this->aStructuredQuery['country'])
+ && strlen($this->aStructuredQuery['country']) == 2 && strtolower($this->aStructuredQuery['country']) != $aToken['country_code'])
{
continue;
}
if (CONST_Debug) var_Dump($aGroupedSearches);
- if (CONST_Search_TryDroppedAddressTerms && sizeof($aStructuredQuery) > 0)
+ if (CONST_Search_TryDroppedAddressTerms && sizeof($this->aStructuredQuery) > 0)
{
$aCopyGroupedSearches = $aGroupedSearches;
foreach($aCopyGroupedSearches as $iGroup => $aSearches)
$aRecheckWords = preg_split('/\b[\s,\\-]*/u',$sQuery);
foreach($aRecheckWords as $i => $sWord)
{
- if (!$sWord) unset($aRecheckWords[$i]);
+ if (!preg_match('/\pL/', $sWord)) unset($aRecheckWords[$i]);
}
+ if (CONST_Debug) { echo '<i>Recheck words:<\i>'; var_dump($aRecheckWords); }
+
foreach($aSearchResults as $iResNum => $aResult)
{
if (CONST_Search_AreaPolygons)
if (stripos($sAddress, $sWord)!==false)
{
$iCountWords++;
- if (preg_match("/(^|,)\s*$sWord\s*(,|$)/", $sAddress)) $iCountWords += 0.1;
+ if (preg_match("/(^|,)\s*".preg_quote($sWord, '/')."\s*(,|$)/", $sAddress)) $iCountWords += 0.1;
}
}