Magento 2 中增量索引同步而不是完全重新索引

问题描述 投票:0回答:1

基本上,Magento 2 通过 php bin/magento indexer:reindex 具有

reindex
功能。我们将拥有数百万种产品,因此完全重新索引对我们来说将非常缓慢。我们在每次导入单个产品后禁用索引更新。我们通过 Magento 2 Bootstrap 之外的纯 SQL 插入进行导入。我的问题是 - 是否可以进行增量索引同步而不是完全重新索引。预先感谢。

我查看了 Magento 2 CLI 文档,没有发现任何可能在

indexer:reindex
中包含负责增量行为的标志。

elasticsearch magento2
1个回答
0
投票

Magento 有 2 种索引方法。保存索引和按计划索引。查看更多这里

在您的情况下,最合乎逻辑的解决方案是使用按计划索引。当按计划配置时,Magento 将创建 Mysql 触发器来检测 对catalog_product_entity 表进行的更改。因此,如果您使用 php 代码来更新产品或 SQL 查询,那么您打算进行的更改将是 检测到。

您可以在

catalog_product_category_cl
等各种表格中看到这些“更改日志”。

因此,您不需要执行任何手动操作,Magento 将根据您所做的更改自动重新索引所需内容。我们运营着 1000 万个产品商店,实际上,完整的重新索引非常慢,但我们几乎从不这样做。

也就是说,有一个重要的点,“锁”。如前所述,Magento 会自动重新索引,但如果您的导入仍在运行,则导入存在风险 尝试将数据写入数据库的锁定部分,因为导入将锁定它们。因此,您应该在以下情况下禁用索引过程: 导入并在导入完成后再次启用它。这样,更改将被记录,但索引只会在之后更新。

您可以通过完全停止 crons 或使用

Magento\Indexer\Model\Indexer
上的插件来防止其执行来实现此目的。

© www.soinside.com 2019 - 2024. All rights reserved.