magento 中的 reindexall() 与 reindexeverything() 有什么区别?

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

我想知道 Magento 索引器中的

reindexAll()
reindexEverything()
之间有什么区别?

php magento magento-1.9 indexer
4个回答
0
投票

reindexEverything()
似乎在继续
reindexAll()

之前检查并使用依赖项

0
投票

根据 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

0
投票

在 Magento 中,reindexall() 方法用于重建所有索引器。此方法可用于一次重建所有索引器,而不是单独重建它们。

另一方面,reindexEverything()方法用于重建所有索引器,以及执行一些额外的任务,例如清除缓存和更新配置。如果您想在单个操作中执行所有索引器的完整重建并更新系统配置,则此方法非常有用。

值得注意的是,这两种方法都应谨慎使用,因为它们可能会占用大量资源,并且可能需要很长时间才能完成,具体取决于您的商店的大小和需要重建的索引器的数量。通常最好在非高峰时段或商店客流量最少时使用这些方法,以避免对客户造成任何潜在的干扰。


0
投票

重新索引全部()

此方法用于一次性重新索引所有索引器。它确保整个商店的所有数据都是最新的。它通常在对目录进行任何批量更改(添加新产品、更新价格或更改属性值)时使用。它可能是资源密集型过程(尤其是对于大型目录),因为它会处理所有索引器,无论单个索引器是否需要更新。

重新索引一切()

此方法是在 magento 中重新索引的更积极的方法(在 1.x 中)。它旨在重新索引所有数据,类似于 reindexAll(),但它还可能包括 reindexAll() 中可能不存在的其他流程/检查。它用于执行更广泛的操作,具体取决于它的实现。 它通常用于需要完全刷新所有索引数据的场景,包括任何自定义或附加索引逻辑。

注:

reindexEverything() 在 magento 1.9 中使用。但在 Magento 2 中,与 Magento 1.x 相比,索引系统进行了显着的重组和改进。因此,reindexEverything() 方法没有被延续到 Magento 2 中。

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