$progressBar->finish(); } $cli->output("Starting processing pending search engine modifications"); $contentObjects = array(); $db = eZDB::instance(); $offset = 0; $limit = 50; //$searchEngine = eZSearch::getEngine(); // //if ( !$searchEngine instanceof ezpSearchEngine ) //{ // $cli->error( "The configured search engine does not implement the ezpSearchEngine interface or can't be found." ); // $script->shutdown( 1 ); //} $searchEngine = new eZSolr(); $needRemoveWithUpdate = $searchEngine->needRemoveWithUpdate(); while (true) { $entries = $db->arrayQuery("SELECT param FROM ezpending_actions WHERE action = 'index_object' GROUP BY param ORDER BY min(created)", array('limit' => $limit, 'offset' => $offset)); if (is_array($entries) && count($entries) != 0) { foreach ($entries as $entry) { $objectID = (int) $entry['param']; $cli->output("\tIndexing object ID #{$objectID}"); $db->begin(); $object = eZContentObject::fetch($objectID); $removeFromPendingActions = true; if ($object) { if ($needRemoveWithUpdate) { $searchEngine->removeObject($object, false); } $removeFromPendingActions = $searchEngine->addObject($object, false); }