通过SQL重新索引Magento

Mem*_*r-X 0 mysql sql t-sql magento

有没有办法调用重建索引,你可以通过SQL语句在magento的后端启动?

我有一堆脚本将产品添加到magento,我们需要在它之后重新索引,我们有一个运行这些脚本的预定作业,我想在完成后重新编制索引,这样在脚本完成后它将始终重新索引无论他们花多长时间(有时他们可能需要几分钟,有时一半和一小时,具体取决于需要更改,插入或删除的数据)

任务调度程序在Microsoft SQL Server上,magento在MySQL服务器上(我们显然使用链接服务器)

Ala*_*orm 9

不,那里没有.

在Magento中,"重新索引"意味着"运行PHP类列表并运行它们的reindexAll方法".索引策略因索引器类型而异.大多数需要读取某种数据,进行程序计算,然后将值插入到平面表中.

例如,目录/ URL重写重新索引器是类

app/code/core/Mage/Catalog/Model/Indexer/Url.php
(alias of catalog/indexer_url, PHP class of Mage_Catalog_Model_Indexer_Url)
Run Code Online (Sandbox Code Playgroud)

它的reindxAll方法包含

public function reindexAll()
{
    /** @var $resourceModel Mage_Catalog_Model_Resource_Url */
    $resourceModel = Mage::getResourceSingleton('catalog/url');
    $resourceModel->beginTransaction();
    try {
        Mage::getSingleton('catalog/url')->refreshRewrites();
        $resourceModel->commit();
    } catch (Exception $e) {
        $resourceModel->rollBack();
        throw $e;
    }
}
Run Code Online (Sandbox Code Playgroud)

并且在refreshRewrites方法中处理实际的索引,这将创建所需的Magento重写.