Magento - 以编程方式禁用自动索引

2021-12-19 00:00:00 php magento magento-1.4

在 Magento 1.9 Enterprise(本质上是 1.4 社区版)中,以编程方式禁用索引以使其不会在每次产品更新后重新索引的正确方法是什么?

In Magento 1.9 Enterprise (which is essentially the 1.4 Community Edition), what is the correct way to disable the index programmatically so that it wont reindex after every product update?

我们有一个复杂的产品导入程序,所以我们不能使用内置的目录导入.

We have a complex product import procedure, so we can't use the built-in catalog import.

推荐答案

将索引器设置为手动"模式将阻止它在保存/编辑/删除时自动索引.

Setting the indexer to "manual" mode will prevent it from automatically indexing on save/edit/delete.

在 MAGE_ROOT/shell 中,您可以找到一个名为 indexer.php 的脚本,它允许您启用/禁用索引器:

In MAGE_ROOT/shell you can find a script called indexer.php that, between others allows you to enable/disable indexers:

php indexer.php --mode-manual catalog_url
php indexer.php --mode-realtime catalog_url

您可以有一个脚本将所有索引器设置为手动

You can have a script that sets all the indexers to manual

如果您想以编程方式执行此操作,则应该按照以下方式进行操作:

If you want to do it programatically, something along the lines should work:

$pCollection = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($pCollection as $process) {
  $process->setMode(Mage_Index_Model_Process::MODE_MANUAL)->save();
  //$process->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->save();
}

相关文章