X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/044bb6afa53f2c799490d8a95ca050c8b755ca4c..6070c3d1d58fb8737b387e8a3ef1f17fb1eb5d54:/lib-php/tokenizer/legacy_tokenizer.php diff --git a/lib-php/tokenizer/legacy_tokenizer.php b/lib-php/tokenizer/legacy_tokenizer.php index 804f69e2..ec2d7e68 100644 --- a/lib-php/tokenizer/legacy_tokenizer.php +++ b/lib-php/tokenizer/legacy_tokenizer.php @@ -15,6 +15,27 @@ class Tokenizer $this->oNormalizer = \Transliterator::createFromRules(CONST_Term_Normalization_Rules); } + public function checkStatus() + { + $sStandardWord = $this->oDB->getOne("SELECT make_standard_name('a')"); + if ($sStandardWord === false) { + throw new Exception('Module failed', 701); + } + + if ($sStandardWord != 'a') { + throw new Exception('Module call failed', 702); + } + + $sSQL = "SELECT word_id FROM word WHERE word_token IN (' a')"; + $iWordID = $this->oDB->getOne($sSQL); + if ($iWordID === false) { + throw new Exception('Query failed', 703); + } + if (!$iWordID) { + throw new Exception('No value', 704); + } + } + public function setCountryRestriction($aCountries) { @@ -84,7 +105,7 @@ class Tokenizer // now compute all possible tokens $aWordLists = array(); $aTokens = array(); - foreach ($aNormPhrases as $sTitle => $sPhrase) { + foreach ($aNormPhrases as $sPhrase) { if (strlen($sPhrase) > 0) { $aWords = explode(' ', $sPhrase); Tokenizer::addTokens($aTokens, $aWords); @@ -191,17 +212,26 @@ class Tokenizer ) { $oToken = new Token\Country($iId, $aWord['country_code']); } - } else { + } elseif ($aWord['word_token'][0] == ' ') { $oToken = new Token\Word( $iId, - $aWord['word_token'][0] != ' ', (int) $aWord['count'], substr_count($aWord['word_token'], ' ') ); + } else { + $oToken = new Token\Partial( + $iId, + (int) $aWord['count'] + ); } if ($oToken) { - $oValidTokens->addToken($aWord['word_token'], $oToken); + // remove any leading spaces + if ($aWord['word_token'][0] == ' ') { + $oValidTokens->addToken(substr($aWord['word_token'], 1), $oToken); + } else { + $oValidTokens->addToken($aWord['word_token'], $oToken); + } } } }