/**
  * @see LoggedUpdateMaintenance::doDBUpdates
  *
  * @return bool
  */
 public function doDBUpdates()
 {
     if (!defined('WB_VERSION')) {
         $this->output("You need to have Wikibase enabled in order to use this maintenance script!\n\n");
         exit;
     }
     $reporter = new ObservableMessageReporter();
     $reporter->registerReporterCallback(array($this, 'report'));
     $table = WikibaseRepo::getDefaultInstance()->getStore()->getTermIndex();
     $builder = new TermSearchKeyBuilder($table);
     $builder->setReporter($reporter);
     $builder->setBatchSize((int) $this->getOption('batch-size', 100));
     $builder->setRebuildAll(!$this->getOption('only-missing', false));
     $builder->setFromId((int) $this->getOption('start-row', 1));
     $n = $builder->rebuildSearchKey();
     $this->output("Done. Updated {$n} search keys.\n");
     return true;
 }