我希望能够将所有索引设置为“按计划更新”,然后在后台自动更新Magento says they should。问题是,这不会发生。没有自动重新索引的cron作业(请参阅this related question)。
所以,如果我必须创建自己的cron作业,我该如何以有效的方式完成这项工作?我不想运行“php shell / indexer.php reindexall”。这会完全重建索引表。当然,我可以在晚上这样做,但这意味着直到第二天才能在前端反映出任何变化。这不是一个可以接受的解决方案。如果我全天都运行完全重新索引,我最终遇到了我现在遇到的同样的问题 - 当人们在管理员工作时,由于重新索引而导致表锁定和缓慢。
Magento的新“部分重建索引”应该解决这个问题吗?
如果是这种情况,重新索引过程将是最小的并且可以经常运行。甚至每分钟到索引的位置对于管理员用户来说几乎都是不可察觉的。 (我说每分钟,因为Magento告诉我们这是可能的)
但是,在此版本中,平面目录会为您更新 - 每分钟或根据您的Magento cron作业。
这神秘的部分重新指数在哪里?如何调用它而不是重新索引所有内容?
是否有reindexPartial()?
答案 0 :(得分:2)
enterprise_refresh_index cron作业似乎运行它。每次Magento cron运行时它都会运行。请参阅Enterprise_Index_Model_Observer :: refreshIndex()。
由于需要建立锁定文件,因此无法手动运行。如果您需要手动重新索引,最简单的方法就是运行cron.php文件。
我认为我只是遇到了一个项目特定的问题,而这个问题没有运行。
答案 1 :(得分:1)
部分重建索引是通过内置于Magento的cron作业运算符执行的。您不需要运行实际的indexer.php文件。相反,您必须根据文档设置Magento内置的Cron调度程序。
文档: http://www.magentocommerce.com/wiki/groups/227/setting_up_magento_in_cron
您只需执行 cron.php 文件,该文件将依次调用部分重建索引流程。
php5-cli -f /home/USERNAME/public_html/cron.php
工作原理: