Magento的重新索引问题(Magento Re- Indexing Issue)

2019-07-31 15:52发布

我对着在Magento的一个问题。 我有它含有约4500多种产品功能的网站Magento的一个商店。 我想重新索引产品。

我通过Magento的默认功能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();

要么

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

也改变了VAR /锁文件夹的权限为777,并重新命名文件夹,并尝试删除它在这个锁文件夹中创建,但没有得到解决的.lock文件。

我没有SSH权利。 那么,有没有其他解决办法,这将帮助我解决重新索引问题。

Answer 1:

原因

有catalog_product_flat_%表中inexisting /删除产品引用。

尝试截断在MySQL控制台或经由phpMyAdmin的'catalog_product_flat_%'表(catalog_product_flat_1,catalog_product_flat_2,catalog_product_flat_3等):

mysql > truncate table ´catalog_product_flat_1´;
mysql > truncate table ´catalog_product_flat_2´;
mysql > truncate table ´catalog_product_flat_3´;

然后重新索引。



Answer 2:

注:虽然下面的答案了,以我的经验,一直是有关这种类型的问题,它不会似乎是目前由提问者经历的情形的原因

Processing是指以下两种情况之一:

  • 该指标可能实际上仍然是捉迷藏,在这种情况下,坐下来,等待他们完成。 Magento的索引可能需要很长的时间(4500个产品,“时间”是可能的,这取决于在服务器上)。

  • 一个索引的过程可能已经死了,留下陈旧落后的锁。 同时,死者索引可能是由不同的用户运行。 最常见的情况是cron被错误地配置为运行该索引作为root ,或一般用户帐户,而不是作为相同的用户所使用的网站(例如: apachewww )。

所有这些Processing真正的意思是“Magento的未能成功收购这些索引工作的锁”。 第一种情况是琐碎和无趣。 等待了几个小时,如果同样的索引仍列为Processing ,那么你可能有第二种情况。

检查锁定文件,下找到的权限var/locks在你的Magento根。 他们是否被作为Web服务器正在运行的同一个用户拥有? 如果不是,你是绝对肯定的是,指标不再运行 ,可以安全地删除锁。 下一步是找出为什么锁了摆在首位的错误的权限。 也就是说,这可能是更好曾与你的主机,如果你没有一个谈话ssh访问。



Answer 3:

从分度器的错误将被捕获并默认情况下不记录。 典型的解决方法是使用CLI重指数的工具; 这将是非常详细的任何错误。

例如。

php shell/indexer.php --reindex ...

但考虑到你没有SSH访问-你可以看看indexer.php文件,看看它们是如何产生的错误,或者你可以只推出shell_execexec从一个基于Web的PHP脚本,将模拟CLI。



Answer 4:

我是不是能够重新索引catalog_product_flat索引化处理。 呆了一天,并试图在互联网上的几个解决方案之后。 我能解决这个问题。 下面是步骤。

  1. 创建其面对索引问题Magento的DB的克隆。
  2. 转储数据库到新创建的数据库。
  3. 截断表catalog_product_flat_1单店和多个商店将有多个表catalog_product_flat_* ,其中*是店铺ID。 这里截断所有表。
  4. 在mangento运行实例指向新创建的数据库,并配置DATABSE,使网站运行正常。
  5. 现在运行命令php document_root/shell/indexer.php --reindex catalog_product_flat或尝试从管理员重新索引。 php document_root/shell/indexer.php --reindexall用于重建索引的所有过程。


Answer 5:

我遇到同样的问题,创造新的客户群时,我无法重新索引的价格。

发现这里的解决方案http://www.magikcommerce.com/blog/how-to-resolve-magento-reindexing-errors-in-your-magento-store/

这里的程序:

  1. 找到VAR /锁目录,删除该目录下的所有文件。 这将清除所有的锁重新索引再次发生。

  2. 现在,登录到您的MysQSL / phpMyAdmin来运行下面的MySQL查询(请确保您已经采取完全备份犯这个MySQL查询之前)

    DELETE CPOP * FROM catalog_product_option_price AS CPOP INNER JOIN catalog_product_option AS CPO ON cpo.option_id = cpop.option_id WHERE cpo.type = '复选框' OR cpo.type = '无线电' OR cpo.type = 'DROP_DOWN'。

     DELETE cpotp.* FROM catalog_product_option_type_price AS cpotp INNER JOIN catalog_product_option_type_value AS cpotv ON cpotv.option_type_id = cpotp.option_type_id INNER JOIN catalog_product_option AS cpo ON cpotv.option_id = cpo.option_id WHERE cpo.type <> 'checkbox' AND cpo.type <> 'radio' AND cpo.type <> 'drop_down'; 
  3. 重新登录到您的Magento管理面板,进入系统选项卡>管理指数再次创下指数,你会发现没有这样的错误,会再次出现。 如果重新索引在未来停止解析,您可以再次遵循相同的步骤Magento ReIndexing的问题。



文章来源: Magento Re- Indexing Issue
标签: magento