我搜索了一会儿,接着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
有一个用法示例。