我想知道 Magento 索引器中的
reindexAll()
和 reindexEverything()
之间有什么区别?
reindexEverything()
似乎在继续 reindexAll()
之前检查并使用依赖项
根据 Magento 1.9 中的评论...
/**
* Reindex all data what this process responsible is
* Check and using depends processes
*
* @return $this
*/
public function reindexEverything()
{
和
/**
* Rebuild all index data
*/
public function reindexAll()
{
$this->_getResource()->reindexAll();
}
但是您只会在运行时使用 reindexall 或 reindexallrequired
php shell/indexer.php
,如下所示:
$ php shell/indexer.php --help
Usage: php -f indexer.php -- [options]
--status <indexer> Show Indexer(s) Status
--mode <indexer> Show Indexer(s) Index Mode
--mode-realtime <indexer> Set index mode type "Update on Save"
--mode-manual <indexer> Set index mode type "Manual Update"
--reindex <indexer> Reindex Data
info Show allowed indexers
reindexall Reindex Data by all indexers
reindexallrequired Reindex Data only if required by all indexers
help This help
<indexer> Comma separated indexer codes or value "all" for all indexers
在 Magento 中,reindexall() 方法用于重建所有索引器。此方法可用于一次重建所有索引器,而不是单独重建它们。
另一方面,reindexEverything()方法用于重建所有索引器,以及执行一些额外的任务,例如清除缓存和更新配置。如果您想在单个操作中执行所有索引器的完整重建并更新系统配置,则此方法非常有用。
值得注意的是,这两种方法都应谨慎使用,因为它们可能会占用大量资源,并且可能需要很长时间才能完成,具体取决于您的商店的大小和需要重建的索引器的数量。通常最好在非高峰时段或商店客流量最少时使用这些方法,以避免对客户造成任何潜在的干扰。
重新索引全部():
此方法用于一次性重新索引所有索引器。它确保整个商店的所有数据都是最新的。它通常在对目录进行任何批量更改(添加新产品、更新价格或更改属性值)时使用。它可能是资源密集型过程(尤其是对于大型目录),因为它会处理所有索引器,无论单个索引器是否需要更新。
重新索引一切():
此方法是在 magento 中重新索引的更积极的方法(在 1.x 中)。它旨在重新索引所有数据,类似于 reindexAll(),但它还可能包括 reindexAll() 中可能不存在的其他流程/检查。它用于执行更广泛的操作,具体取决于它的实现。 它通常用于需要完全刷新所有索引数据的场景,包括任何自定义或附加索引逻辑。
注:
reindexEverything() 在 magento 1.9 中使用。但在 Magento 2 中,与 Magento 1.x 相比,索引系统进行了显着的重组和改进。因此,reindexEverything() 方法没有被延续到 Magento 2 中。