コード例 #1
0
ファイル: sql.php プロジェクト: Sywooch/dump
 protected function loadLemmas(phpMorphy_Dict_Source_Normalized_Ancodes $source, $context, $dictId)
 {
     //$stmt = $this->engine->prepareInsert('lemmas', array('dict_id', 'base_str', 'flexia_id', 'accent_id', 'prefix_id', 'common_ancode_id'));
     $inserter = $this->engine->getBulkInserter('lemmas', array('dict_id', 'base_str', 'flexia_id', 'accent_id', 'prefix_id', 'common_ancode_id'));
     $flexias_map = $context->getFlexiasMap();
     $ancodes_map = $context->getAncodesMap();
     $prefixes_map = $context->getPrefixesMap();
     $i = 0;
     foreach ($source->getLemmas() as $lemma) {
         if ($i % self::COMMIT_EVERY_LEMMA == 0) {
             $this->log("Flush packet of inserts");
             $inserter->execute();
         }
         if ($i % self::DUMP_EVERY_LEMMA == 0) {
             $this->log("{$i} lemmas done");
         }
         $ancode_id = $lemma->hasAncodeId() ? $ancodes_map->resolve($lemma->getAncodeId()) : null;
         $prefix_id = $lemma->hasPrefixId() ? $prefixes_map->resolve($lemma->getPrefixId()) : null;
         $accent_id = null;
         $flexia_model_id = $flexias_map->resolve($lemma->getFlexiaId());
         $base = $this->trim($lemma->getBase(), 64);
         $inserter->add(array($dictId, $base, $flexia_model_id, $accent_id, $prefix_id, $ancode_id));
         $i++;
     }
     $inserter->execute();
 }