I need a Re-indexing programatically in magento
4 Answers
$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($indexingProcesses as $process) {
$process->reindexEverything();
}
To reindex all data:
for ($i = 1; $i <= 9; $i++) {
$process = Mage::getModel('index/process')->load($i);
$process->reindexAll();
}
The following will reindex each index. >
for ($i = 1; $i <= 9; $i++)
{
$process = Mage::getModel('index/process')->load($i);
$process->reindexAll();
}
You can also use the Magento collection model to load each index rather than hard coding the id in the for loop.
$indexCollection = Mage::getModel('index/process')->getCollection();
foreach ($indexCollection as $index)
{
/* @var $index Mage_Index_Model_Process */
$index->reindexAll();
}
You could also call the function getProcessByCode as follows: >
$process = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price');
$process->reindexAll();
I think quickway to do it :
reindexAll() method we can reindex all indexes
Mage::getModel('index/indexer')->reindexAll();