Magento: reindex & cronjob
Den Indexierungsprozess per Cron bzw. aus der Bash oder Windows-Shell zu starten geht wie folgt (Auszug indexer.php doku):
Usage: php -f indexer.php -- [options] --status <indexer> Show Indexer(s) Status --mode <indexer> Show Indexer(s) Index Mode --mode-realtime <indexer> Set index mode type "Update on Save" --mode-manual <indexer> Set index mode type "Manual Update" --reindex <indexer> Reindex Data info Show allowed indexers reindexall Reindex Data by all indexers help This help <indexer> Comma separated indexer codes or value "all" for all indexers
Mögliche Optionen sind (Ausgabe von „Info“):
catalog_product_attribute Product Attributes catalog_product_price Product Prices catalog_url Catalog URL Rewrites catalog_product_flat Product Flat Data catalog_category_flat Category Flat Data catalog_category_product Category Products catalogsearch_fulltext Catalog Search Index tag_summary Tag Aggregation Data cataloginventory_stock Stock Status
Demnach ist ein Reindex einzelner Komponenten möglich über:
php /path/to/magento/shell/indexer.php --reindex catalog_product_flat
Tipp: Der Script prüft ob Abhängigkeiten vorhanden sind, welche über die config.xml’s der einzelnen Module definiert werden. Diese sind in der Regel auch definiert, so kommt es ggf. zu einem ungewollten reindexall …
Quick & dirty (besser wäre die entsprechenden config.xml’s anzupassen) kann das umgangen werden durch auskommentieren der folgenden Zeilen in der function reindexEverything in der app/code/core/Mage/Index/Model/Process.php :
public function reindexEverything() { if ($this->getData('runed_reindexall')) { return $this; } /* if ($this->getDepends()) { $indexer = Mage::getSingleton('index/indexer'); foreach ($this->getDepends() as $code) { $process = $indexer->getProcessByCode($code); if ($process) { $process->reindexEverything(); } } } */ $this->setData('runed_reindexall', true); return $this->reindexAll(); }
–status <indexer> Show Indexer(s) Status
–mode <indexer> Show Indexer(s) Index Mode
–mode-realtime <indexer> Set index mode type „Update on Save“
–mode-manual <indexer> Set index mode type „Manual Update“
–reindex <indexer> Reindex Data
info Show allowed indexers
reindexall Reindex Data by all indexers
help This help
<indexer> Comma separated indexer codes or value „all“ for all indexers