我搜索了一会儿,接着this回答甚至看了一下shell indexer脚本,我就附带了这个。基本上我有

$processes = Mage::getSingleton('index/indexer')->getProcessesCollection();
$processes->walk('setMode', array(Mage_Index_Model_Process::MODE_MANUAL));
$processes->walk('save');

// Importing data here...

Mage::getModel('catalog/product_image')->clearCache();

// rebuild everything!!!
$processes = Mage::getSingleton('index/indexer')->getProcessesCollection();
$processes->walk('reindexEverything');
$processes->walk('setMode', array(Mage_Index_Model_Process::MODE_REAL_TIME));
$processes->walk('save');


但是我仍然在后端看到这个屏幕



...如何“更新”索引?

**更新**

问题解决了!

要正确索引所有内容,只需调用所有内容即可!

// rebuild everything!!!
$processes = Mage::getSingleton('index/indexer')->getProcessesCollection();
$processes->walk('setMode', array(Mage_Index_Model_Process::MODE_REAL_TIME));
$processes->walk('save');

$processes->walk('reindexAll');
$processes->walk('reindexEverything');

最佳答案

如果您使用以下参数从cli运行indexer.php,警报是否已解决:

indexer.php reindex all

如果是这样,是否可以将带有这些参数的indexer.php作为脚本的一部分来执行?

编辑:另外,在Mage_Index_Model_Process中,请查看reindexEverything()方法。

indexer.php有一个用法示例。

07-24 09:17