Magento重新索引问题

drs*_*iya 7 magento

在此输入图像描述我在Magento面临一个问题.我有一个具有多网站功能的Magento商店,其中包含大约4500种产品.我想重新编制产品索引.

我通过magent默认功能通过csv导入4500产品.导入产品后,更改没有显示在正面,所以我去了索引管理,我发现有两个索引处于处理状态

1产品属性2产品平面数据

我已经完成了以下步骤:

1尝试从管理员系统 - >索引管理重新索引它

2尝试通过调用php脚本手动完成

require_once 'app/Mage.php';
umask( 0 );
Mage :: app( "default" );
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();
Run Code Online (Sandbox Code Playgroud)

要么

$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexingProcesses as $process) {
    $process->reindexEverything();
}
Run Code Online (Sandbox Code Playgroud)

同时将var/locks文件夹权限更改为777并重命名该文件夹,并尝试删除在此锁定文件夹中创建但未获得解决方案的.lock文件.

我没有SSH权限.那么有没有其他解决方案可以帮助我解决重新索引问题.

Wil*_*mer 6

注意:虽然根据我的经验,以下答案与此类问题有关,但似乎并不是提问者目前遇到的情况的原因.

Processing 意味着两件事之一:

  • 索引实际上仍然可以运行,在这种情况下,请坐下来等待它们完成.Magento索引可能需要很长时间(对于4500个产品,"小时"是可能的,具体取决于服务器).

  • 索引器进程可能已经死亡,从而留下过时的锁.同时,死索引器可能已由不同的用户运行.最常见的情况是cron错误地配置为将索引器作为root普通用户帐户运行,而不是与网站使用的用户相同(例如:apachewww).

所有这一切Processing真正意味着"Magento未能锁定这些索引器工作".第一种情况是微不足道的,无趣的.等待几个小时,如果仍然列出相同的索引器Processing,那么您可能会遇到第二种情况.

检查var/locks在magento root 下找到的锁定文件的权限.它们是否与Web服务器运行时所属的用户所有?如果没有,并且您完全确定索引不再运行,则可以安全地删除锁.下一步是首先找出锁具有错误权限的原因.如果您没有ssh访问权限,这可能会与您的主机进行更好的对话.


Pal*_*mar 0

原因

\n\n

Catalog_product_flat_% 表中有对不存在/已删除产品的引用。

\n\n

解决方案

\n\n

尝试在 MySQL 控制台或通过 phpMyAdmin 截断 \xc2\xb4catalog_product_flat_%\xc2\xb4 表(catalog_product_flat_1、catalog_product_flat_2、catalog_product_flat_3 等):

\n\n
mysql > truncate table \xc2\xb4catalog_product_flat_1\xc2\xb4;\nmysql > truncate table \xc2\xb4catalog_product_flat_2\xc2\xb4;\nmysql > truncate table \xc2\xb4catalog_product_flat_3\xc2\xb4;\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后重新索引。

\n