gpt4 book ai didi

目录产品及其属性的 Magento 索引

转载 作者:行者123 更新时间:2023-12-02 16:13:23 24 4
gpt4 key购买 nike

我对 Magento 索引过程有一些疑问:

  • 首先,为什么在新添加/修改每个产品或其任何属性后,Magento 不以编程方式执行索引过程?当索引过程非常重要并且可以通过编程方式完成时,为什么管理员需要进行索引?
  • 在每个索引过程中,当点击“重新索引数据”链接时,是否会将所有产品(包括已索引的产品)编入索引,还是仅将未编入索引的产品编入索引?
  • 如果我想查看/调试每个索引过程所花费的时间,那么我需要做什么?

最佳答案

由三部分组成的答案,所以这应该值得三倍,对吧? :)

1) 可能是因为索引往往是一项计算密集型任务,因此,管理员可以选择一个低负载时段,或者通过 cron 安排时间,而不是在保存产品时(通常在工作时间)减慢站点速度。索引通常发生在低负载时间。

2) 所有产品均重新索引。如果您查看 Mage_CatalogIndex_Model_Indexer::plainReindex(),您将看到它在将所有事件产品编入索引之前执行clear以删除所有索引数据。

$this->_getResource()->clear(
$attributeCodes,
$priceAttributeCodes,
count($priceAttributeCodes)>0,
count($priceAttributeCodes)>0,
count($priceAttributeCodes)>0,
$products,
$stores
);

<snip/>

$collection = $this->_getProductCollection($store, $products);
$collection->addAttributeToFilter(
'status',
array('in'=>Mage::getModel('catalog/product_status')->getSaleableStatusIds())
);
$this->_walkCollection($collection, $store, $attributeCodes);

其中 _walkCollection 方法为每个产品创建索引。

3) 您可以打开 Profiler。有一些很棒的blog posts关于如何使用它。您可以使用 Varien_Profiler::start('Indexer') 等将关键代码包装在 Mage_CatalogIndex_Model_Indexer 中,以检查所花费的时间。

关于目录产品及其属性的 Magento 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258503/

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