X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/d0880694eb3ad17cddfe7d7f8fbe73b5a7ce8eef..58852b3eebf712dbf0e87a2a7aa98ba6b39ef02d:/lib/TokenList.php diff --git a/lib/TokenList.php b/lib/TokenList.php index 96b756f8..84dc98d0 100644 --- a/lib/TokenList.php +++ b/lib/TokenList.php @@ -32,6 +32,17 @@ class TokenList // List of list of tokens indexed by their word_token. private $aTokens = array(); + + /** + * Return total number of tokens. + * + * @return Integer + */ + public function count() + { + return count($this->aTokens); + } + /** * Check if there are tokens for the given token word. * @@ -60,7 +71,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. @@ -74,11 +85,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; @@ -114,7 +125,7 @@ class TokenList $iId, $aWord['class'], $aWord['type'], - $aWord['operator'] ? Operator::NONE : Operator::NEAR + $aWord['operator'] ? Operator::NEAR : Operator::NONE ); } } elseif ($aWord['country_code']) { @@ -127,7 +138,7 @@ class TokenList } else { $oToken = new Token\Word( $iId, - $aWord['word'][0] != ' ', + $aWord['word_token'][0] != ' ', (int) $aWord['count'] ); }