X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/890d415e1ffd997d11ed35dee04cb01b94ca133f..00b1521a6361a5bf57f7d60c0b04f720cd146629:/lib/TokenList.php?ds=sidebyside diff --git a/lib/TokenList.php b/lib/TokenList.php index 84dc98d0..1b6a1dcf 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. * @@ -68,6 +80,21 @@ class TokenList return isset($this->aTokens[$sWord]) ? $this->aTokens[$sWord] : array(); } + public function getFullWordIDs() + { + $ids = array(); + + foreach ($this->aTokens as $aTokenList) { + foreach ($aTokenList as $oToken) { + if (is_a($oToken, '\Nominatim\Token\Word') && !$oToken->bPartial) { + $ids[$oToken->iId] = $oToken->iId; + } + } + } + + return $ids; + } + /** * Add token information from the word table in the database. * @@ -139,7 +166,8 @@ class TokenList $oToken = new Token\Word( $iId, $aWord['word_token'][0] != ' ', - (int) $aWord['count'] + (int) $aWord['count'], + substr_count($aWord['word_token'], ' ') ); }