gpt4 book ai didi

magento - 如何在 Magento 1.13 中运行部分重新索引?

转载 作者:行者123 更新时间:2023-12-02 12:22:11 25 4
gpt4 key购买 nike

我希望能够将所有索引设置为“按计划更新”,然后让它们全部自动更新,如 Magento says they should在后台。问题是,这不会发生。没有自动重新索引的 cron 作业(请参阅 this related question )。

那么,如果我必须创建自己的 cron 作业,我该如何以有效的方式准确地做到这一点?我不想运行“php shell/indexer.php reindexall”。这会完全重建索​​引表。当然,我可以每晚这样做,但这意味着直到第二天前端才会反射(reflect)任何更改。这不是一个可接受的解决方案。如果我全天运行完整的重新索引,我最终会遇到与现在相同的问题 - 当人们在管理员中工作时,由于重新索引而导致表锁定和缓慢。

Magento 的新“部分重新索引”应该可以解决这个问题,对吧?

这是我对其工作原理的理解:

  1. 我编辑具有相关索引的实体(例如产品)。
  2. 数据库触发器将记录添加到相关的更改日志表中。
  3. 稍后某个进程会读取更改日志表并重新索引这些特定实体

具体示例

  1. 我更新了“catalog_product_entity_varchar”中的值。
  2. 数据库触发器“trg_catalog_product_entity_varchar_after_update”通过将新版本插入“catalog_product_flat_cl”和“catalogsearch_fulltext_cl”来将该产品标记为已更改。
  3. 部分重新索引过程会读取这些更改日志表,并仅对分别提及“catalog_product_flat”和“catalogsearch_fulltext”的产品重新建立索引。

如果是这种情况,重新索引过程将是最小的并且可以经常运行。甚至每分钟索引都变得管理员用户几乎察觉不到。 (我说每分钟,因为 Magento 告诉我们这是可能的)

In this release, however, the flat catalog is updated for you — either every minute, or according to your Magento cron job.

这个神秘的部分重新索引在哪里?我该如何调用它而不是重新索引所有内容?

有reindexPartial()吗?

Underpants + ? = profit

最佳答案

enterprise_refresh_index cron 作业似乎运行此任务。每次 Magento cron 运行时它都会运行。请参阅 Enterprise_Index_Model_Observer::refreshIndex()。

由于需要建立锁定文件,因此不打算手动运行。如果您需要手动重新索引,最简单的方法是运行 cron.php 文件。

我相信我只是遇到了一个项目特定问题,导致该问题未运行。

关于magento - 如何在 Magento 1.13 中运行部分重新索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21324493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com