X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/0617768ee2f90bb5a5a73bb05b86d3c4bf6c074a..a3728b718882dc1cbdf4e4e3853d938656d077e4:/lib/TokenList.php diff --git a/lib/TokenList.php b/lib/TokenList.php index a5b3c2d2..fce5f940 100644 --- a/lib/TokenList.php +++ b/lib/TokenList.php @@ -55,6 +55,18 @@ class TokenList return isset($this->aTokens[$sWord]); } + /** + * Check if there are partial or full tokens for the given word. + * + * @param string $sWord Token word to look for. + * + * @return bool True if there is one or more token for the token word. + */ + public function containsAny($sWord) + { + return isset($this->aTokens[$sWord]) || isset($this->aTokens[' '.$sWord]); + } + /** * Get the list of tokens for the given token word. * @@ -71,7 +83,7 @@ class TokenList /** * Add token information from the word table in the database. * - * @param object $oDB Database connection. + * @param object $oDB Nominatim::DB instance. * @param string[] $aTokens List of tokens to look up in the database. * @param string[] $aCountryCodes List of country restrictions. * @param string $sNormQuery Normalized query string. @@ -85,11 +97,11 @@ class TokenList $sSQL = 'SELECT word_id, word_token, word, class, type, country_code,'; $sSQL .= ' operator, coalesce(search_name_count, 0) as count'; $sSQL .= ' FROM word WHERE word_token in ('; - $sSQL .= join(',', array_map('getDBQuoted', $aTokens)).')'; + $sSQL .= join(',', $oDB->getDBQuotedList($aTokens)).')'; Debug::printSQL($sSQL); - $aDBWords = chksql($oDB->getAll($sSQL), 'Could not get word tokens.'); + $aDBWords = $oDB->getAll($sSQL, null, 'Could not get word tokens.'); foreach ($aDBWords as $aWord) { $oToken = null;